Disciplina: Programação III Conteúdo: Programação Orientada a Objetos Linguagem JAVA Página: 184



Documentos relacionados
Novo Sistema Almoxarifado

2º Passo Criar a conexão via ODBC (Object DataBase Conection)

Aula 11 Bibliotecas de função

Agenda. A interface de Agendamento é encontrada no Modulo Salão de Vendas Agendamento Controle de Agendamento, e será apresentada conforme figura 01.

WEBSITE LOJAS JOMÓVEIS

UNIVERSIDADE FEDERAL DE RONDÔNIA

Manual do Novo Pátio. Revenda. Versão 2.0

CRONOGRAMA DELPHI para turmas Aproximadamente 84 horas - aulas de 2 horas

Sistema OnixNet / TrucksNet Contagem de Estoque pelas oficinas

ALTERAÇÕES NO SISTEMA ORION

Manual. Autorizador da UNIMED

Tutorial de criação de um blog no Blogger

MANUAL DE INSTALAÇÃO

Código: Data: Revisão: Página: SUMÁRIO

FKcorreiosg2_cp1 - Complemento Transportadoras

SGCT - Sistema de Gerenciamento de Conferências Tecnológicas

Event Viewer - Criando um Custom View

1 Criando uma conta no EndNote

Curso de Aprendizado Industrial Desenvolvedor WEB

COMO CONFIGURAR SUA(S) CONTA(S) NO MICROSOFT OFFICE OUTLOOK

INTRODUÇÃO A LOGICA DE PROGRAMAÇÃO

SMART CONTROLE DO ESTOQUE DE GONDOLA

FRWTC-200 INTRODUÇÃO JAVA SE

PROGRAMAÇÃO ORIENTADA A OBJETOS -INTERFACES GRÁFICAS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Interface Gráfica. Disciplina: Desenvolvimento de Sistemas. Professor: Thiago Silva Prates

Vensis PCP. Rua Américo Vespúcio, 71 Porto Alegre / RS (51) comercial@vensis.com.br

Guia Sphinx: Instalação, Reposição e Renovação

Aplicação Hibernate1 no NetBeans

Acesso ao menu da presença de Carga Exportação WEB

GUIA RÁPIDO DE CONFIGURAÇÃO PARA WINDOWS

Exercícios de Java Aula 17

MANUAL DO USUÁRIO FINANCEIRO

MÓDULO 4 SWING Parte 3

Boletim Técnico. CAGED Portaria 1129/2014 MTE. Procedimento para Implementação. Procedimento para Utilização

Âmbito do Documento. Modelo de Comunicação. Modelo de Comunicação. Prescrição Eletrónica Médica - Aplicação

Sistema de Comercialização de Radiofármacos - Manual do Cliente

1 Criando um aplicativo visual em Java

Controle de Atendimento de Cobrança

Pacote Java Swing Parte 1

Java Foundation Classes Coleção de pacotes para criação de aplicações completas Desktop Interfaces gráficas (GUIs- Graphical User Interface)

3 PROGRAMAÇÃO ORIENTADA A OBJETOS LINGUAGEM JAVA

Vensis Manutenção. Rua Américo Vespúcio, 71 Porto Alegre / RS (51) comercial@vensis.com.br

Inscrição do Candidato ao Processo de Credenciamento

Programação de Interfaces Gráficas. Aula 1. Carlos Eduardo de Carvalho Dantas

Versão Descrição do produto,

Técnicas de Programação II

MTur Sistema Artistas do Turismo. Manual do Usuário

Processo de envio de de marketing

SITAF - Manual de Utilizador

Processo TCar Balanço Móbile

Segue abaixo projeto para desenvolvimento de novo website para loja Virtual

Interface Gráficas Parte I. Bruno Crestani Calegaro

Manual de Instalação

Adicionar o item de Menu Galeria de Fotos

Interface Gráfica com o Usuário (GUI) Profa. Isabel Harb Manssour (Material adaptado das aulas da Profa. Luciana Nedel e do Prof.

Um controlador de domínio baseado em Linux para laboratório vsphere - parte 4

SOGILUB.NET MANUAL DO UTILIZADOR

Capítulo V. Técnicas de Análise de Circuitos

III.3. SISTEMAS HÍBRIDOS FIBRA/COAXIAL (HFC)

Objectivos:. Construir programas com interfaces gráficas Graphical User Interface (GUI) application programs

Modelo de Comunicação. Programa Nacional para a Promoção da Saúde Oral

Programação Orientada a Objetos em Java. GUI Graphical User Interface

IDE (Integrated Development Environment) / RAD (Rapid Application Development)

Mensagem do atendimento ao cliente

Número de cédula profissional (se médico); Nome completo; 20/06/2014 1/7

Linguagem de. Aula 07. Profa Cristiane Koehler

PDF Livre com o Ghostscript

GUIA DE USO DO TECLADO VIRTUAL

MTUR Sistema FISCON. Manual do Usuário

Manual de Operação WEB SisAmil - Gestão

Entender princípios de projeto. Capacitação para construir GUIs. Entender os pacotes que contém componentes de GUI, e as classes e interfaces de

Channel. Colaboradores. Tutorial. Atualizado com a versão 3.9

Informática II INFORMÁTICA II

EIKON DOCUMENTS - ESPECIFICAÇÃO TÉCNICA

Versão 4.0. Central IT Governança Corporativa PROJETO 78. Documento de Entrega. Fábrica. Deploy Beta. Produto: CitSmart GRP

3.10 CRIANDO DESENHOS SIMPLES CLASSE GRAPHICS E OUTRAS

Documentação de Versão Projeto Saúde e Segurança do Trabalho

Academia FI Finanças

( TIAGO DOS SANTOS MENDES ) PROGRAMAÇÃO DISPOSITIVOS MOVEIS ANDROID STUDIO


Win Seta para baixo Win Seta para cima Win Shift Seta para baixo Win Shift Seta para cima Win Seta para direita Win Seta para esquerda Win Shift

ANDRÉ APARECIDO DA SILVA APOSTILA BÁSICA SOBRE O POWERPOINT 2007

H. Problemas/outras situações na ligação com a Segurança Social;

USANDO O ROUNDCUBE WEBMAIL

Planejando o aplicativo

HARDWARE e SOFTWARE. O Computador é composto por duas partes: uma parte física (hardware) e outra parte lógica (software).

Swing. Page 1. Swing. Prof. Anderson Augustinho Uniandrade

FRWTC-300 DESENVOLVIMENTO C# E ORIENTAÇÃO POR OBJETOS

3 Fundamentos do Comportamento dos Hidrocarbonetos Fluidos

Transcrição:

Cnteúd: Prgramaçã Orientada a Objets Linguagem JAVA Página: 184 3.12 COMPONENTES GUI E O TRATAMENTO DE EVENTOS Origem: Capítul 11 Cmpnentes GUI: Parte 1. Livr: Java Cm Prgramar, Deitel & Deitel, 6ª. Ediçã; Capítul 14 Cmpnentes GUI: Parte 1. Livr: Java Cm Prgramar, Deitel & Deitel, 8ª. Ediçã; Apêndice C Swing básic. Apstila FJ-11 (Java e Orientaçã a Objets versã anterir a an de 2012) 3.12.1 INTERFACES GRÁFICAS EM JAVA Uma Interface Gráfica cm Usuári (Graphical User Interface GUI): Apresenta um mecanism amigável a usuári para interagir cm uma aplicaçã; Dá a aplicativ uma aparência e um cmprtament distints; Send cnsistente permite que usuári se familiarize mais rapidamente cm ela, e prtant, pssa utilizá-la mais prdutivamente; Frequentemente cntém barra de títul, barra de menus, btões e caixas de cmbinaçã; É cnstruída a partir de cmpnentes GUI. Também cstumam ser denminads de cntrles u widgets (windw gadgets); Um cmpnente GUI é um bjet cm qual usuári interage via muse, teclad u utr dispsitiv de entrada. Figura 14.1 (Deitel, Java Cm prgramar) Janela cm alguns ds seus cmpnentes GUI habituais. Dica: Acessar e executar aplicativ SwingSet3 (dispnível na Web, http://dwnlad.java.net/javadesktp/swingset3/), um dem da API Swing, dispnibilizad cm um Java Web Start.

Cnteúd: Prgramaçã Orientada a Objets Linguagem JAVA Página: 185 Atualmente, Java suprta, ficialmente, dis tips de biblitecas gráficas: AWT e Swing. A AWT fi a primeira API para interfaces gráficas a surgir n Java e fi, mais tarde, superada pel Swing (a partir d Java 1.2), que pssui diverss benefícis em relaçã a seu antecessr. As biblitecas gráficas sã bastante simples n que diz respeit a cnceits necessáris para usálas. A cmplexidade n aprendizad de interfaces gráficas em Java reside n tamanh das biblitecas e n enrme mund de pssibilidades; iss pde assustar, num primeir mment. AWT e Swing sã biblitecas gráficas ficiais inclusas em qualquer JRE u JDK. Além destas, existem algumas utras biblitecas de terceirs, send a mais famsa, SWT - desenvlvida pela IBM e utilizada n Eclipse e em váris utrs prduts. 3.12.2 PORTABILIDADE As APIs de interface gráfica d Java favrecem, a máxim, lema de prtabilidade da platafrma Java. O lk-and-feel d Swing é únic em tdas as platafrmas nde rda, seja ela Windws, Linux, u qualquer utra. Iss implica que a aplicaçã terá exatamente a mesma interface (cres, tamanhs, etc) em qualquer sistema peracinal. Grande parte da cmplexidade das classes e métds da Swing está n fat da API ter sid desenvlvida tend em mente máxim de prtabilidade pssível. Favrece-se, pr exempl, psicinament relativ de cmpnentes, em detriment d us de psicinament fix, que pderia prejudicar usuáris cm resluções de tela diferentes da prevista. Cm Swing, nã imprta qual sistema peracinal, qual resluçã de tela, u qual prfundidade de cres: sua aplicaçã se cmprtará da mesma frma em tds s ambientes. A bibliteca d Swing está n pacte javax.swing (inteira, excet a parte de acessibilidade, que está em javax.accessibility). 3.12.3 ENTRADA / SAÍDA BASEADA EM GUI SIMPLES COM JOPTIONPANE Um primeir exempl cm Swing utilizada para interagir cm usuári pde ser a exibiçã de uma janela de mensagem (caixa de diálg) cntend algum text. Utiliza-se para iss a classe JOptinPane (pacte javax.swing), que pssui um métd estátic chamad shwmessagedialg(). Tal classe e alguns de seus métds já fram anterirmente estudads. imprt javax.swing.joptinpane; public class OlaSwing { public static vid main(string[] args) { JOptinPane.shwMessageDialg(null, "Ola Swing!"); Iss exibirá a seguinte tela:

Cnteúd: Prgramaçã Orientada a Objets Linguagem JAVA Página: 186 O primeir argument recebid pel métd shwmessagedialg() indica qual é cmpnente pai (n exempl, null, prque nã há mais cmpnentes); segund indica a mensagem a ser exibida. Há utr métd sbrecarregad nde se pde cnfigurar títul da janela e tip de mensagem ( ícne a ser exibid). Na classe JOptinPane, há ainda utrs métds para exibir janelas de cnfirmaçã (Ok/Cancelar) métd shwcnfirmdialg()e janelas para entrada de dads pel usuári (input) shwinputdialg()(sbrecarregada cm 2 u 4 parâmetrs, e retrn String). Um utr exempl simples pde ser encntrad na classe Additin (livr Java-Cm prgramar, capítul 14, Figura 14.2, códig-fnte em anex). Tal exempl realiza a sma de dis númers infrmads pel usuári, exibind resultad em uma caixa de diálg. 3.12.4 CRIANDO UM FORMULÁRIO SIMPLES A mairia das aplicações gráficas d mund têm, em algum mment, algum frmulári para entrada de dads. Vams criar, entã, um frmulári bem simples utilizand Swing. A API d Swing traz uma série de cmpnentes visuais prnts para us. Sã camps de text, btões, checkbxes, labels, tabelas, árvres e muits utrs. Para cmeçar frmulári exempl, utiliza-se dis cmpnentes: um camp de text (JTextField) para entrada d dad e uma etiqueta/label/rótul (JLabel) para tal camp: // O JLabel recebe text a ser exibid JLabel label = new JLabel("Seu nme:"); // O JTextField recebe cm argument tamanh d camp JTextField textfield = new JTextField(20); Td cmpnente Swing deve ser adicinad a um cntêiner (Cntainer) que administrará agrupament e exibiçã ds mesms. O cntainer mais cmum é JPanel (alg cm um painel de cmpnentes). Através de seu métd add(), é pssível adicinar s cmpnentes a este cntainer. // Cria um JPanel (cntainer) JPanel panel = new JPanel(); // adicina s cmpnentes panel.add(label); panel.add(textfield); Pr últim, para exibir frmulári, é precis clcar JPanel em uma janela. Pde-se usar a classe JFrame, que representa uma janela simples. // Criams um JFrame passand títul da janela JFrame frame = new JFrame("Meu primeir frmulári"); // Adicinams nss JPanel frame.add(panel); // Preparams JFrame para exibiçã frame.pack(); // Ajusta tamanh da janela frame.setvisible(true); // Trna a janela visível

Cnteúd: Prgramaçã Orientada a Objets Linguagem JAVA Página: 187 O métd pack() de JFrame, chamad acima, serve para redimensinar frame para um tamanh adequad basead ns cmpnentes que ele tem. E métd setvisible() recebe um valr blean indicand se é desejad que a janela seja visível u nã. É interessante adicinar um últim cmand, que indica a frame que a aplicaçã deve ser terminada quand usuári fechar a janela. frame.setdefaultclseoperatin(jframe.exit_on_close); Outras pções pssíveis (também cnstantes de JFrame) sã: HIDE_ON_CLOSE, DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE. N exempl cmplet abaix, clcu-se tdas as variáveis cm atributs e criu-se um métd chamad mntarfrmulari() cm td códig explicad antes. N métd main(), criuse um nv Frmulari e disparu-se métd mntarfrmulari(). imprt javax.swing.*; //imprtu-se tdas as classes d pacte public class Frmulari { private JLabel label; private JTextField textfield; private JPanel panel; private JFrame frame; private vid mntarfrmulari() { label = new JLabel("Seu nme:"); textfield = new JTextField(20); panel = new JPanel(); panel.add(label); panel.add(textfield); frame = new JFrame("Meu primeir frmulári"); frame.add(panel); frame.pack(); frame.setvisible(true); frame.setdefaultclseoperatin(jframe.exit_on_close); public static vid main(string[] args) { new Frmulari().mntarFrmulari(); A rdar este prgrama, tem-se a seguinte tela para digitaçã d nme:

Cnteúd: Prgramaçã Orientada a Objets Linguagem JAVA Página: 188 3.12.5 ADICIONANDO EVENTOS O frmulári anterir é até interessante para cmeçar a aprender Swing, mas ele é ttalmente inútil, nã faz nada. É necessári ser capaz de recuperar valr digitad pel usuári para efetuar alguma peraçã (salvar n banc de dads, exibir, enviar via rede, mandar um email, etc). Para se fazer efetivamente alguma cisa, trabalha-se cm events que sã disparads pel usuári. O Swing pssui uma frma muit elegante de trabalhar cm events - através de interfaces. O usuári pde disparar events a digitar, a clicar, a passar muse, e muitas utras situações. N frmulári exempl, será usad um btã (cmpnente) que, quand clicad pel usuári (event), disparará um métd (tratadr/handler). Neste métd, será recuperad text digitad pel usuári e será efetuada alguma açã. O cmpnente Swing que representa um btã é JButtn. É precis criar um btã e clcál n cntainer ( JPanel). // cria JButtn passand text d btã JButtn buttn = new JButtn("Exibir"); // adicina btã a JPanel panel.add(buttn); Iss acrescentará btã a frmulári. Mas cm disparar um métd quand btã fr clicad? O Swing traz cnceit de Listeners (uvintes), que sã interfaces que implementam métds para serem disparads pr events. N exempl apresentad, para fazer um métd disparar a clique d btã, utiliza-se a interface ActinListener. Essa interface cntém um métd actinperfrmed(), cuja assinatura é cm abaix. public vid actinperfrmed (ActinEvent e) { // implementaçã aqui... Pde-se fazer, entã, a própria classe Frmulari implementar essa interface e esse métd. Deseja-se que, quand btã fr clicad, capture-se text digitad pel usuári e exiba na tela (usand JOptinPane para iss). O métd actinperfrmed() ficaria cm n códig exempl abaix: public vid actinperfrmed (ActinEvent e) { // pega text d JTextField, através d métd aprpriad String text = textfield.gettext(); // exibe usand JOptinPane

Cnteúd: Prgramaçã Orientada a Objets Linguagem JAVA Página: 189 // aqui usams frame cm cmpnente pai da messagedialg JOptinPane.shwMessageDialg(frame, text); O últim detalhe que falta, é indicar que essa açã (esse ActinListener) deve ser disparada quand btã fr clicad. Iss é feit através d métd addactinlistener(), chamad n btã. Ele recebe cm argument um bjet que implementa ActinListener (n exempl, própri Frmulari, this). buttn.addactinlistener(this); O códig final d frmulári deve estar assim: public class Frmulari implements ActinListener { private JLabel label; private JTextField textfield; private JButtn buttn; private JPanel panel; private JFrame frame; private vid mntarfrmulari() { label = new JLabel("Seu nme:"); textfield = new JTextField(20); buttn = new JButtn("Exibir"); buttn.addactinlistener(this); panel = new JPanel(); panel.add(label); panel.add(textfield); panel.add(buttn); frame = new JFrame("Meu primeir frmulári"); frame.add(panel); frame.pack(); frame.setvisible(true); frame.setdefaultclseoperatin(jframe.exit_on_close); public vid actinperfrmed (ActinEvent e) { String text = textfield.gettext(); JOptinPane.shwMessageDialg(frame, text); public static vid main (String[] args) { new Frmulari().mntarFrmulari();

Cnteúd: Prgramaçã Orientada a Objets Linguagem JAVA Página: 190 A rdar esse prgrama, frmulári será exibid cm um label, um camp de text e um btã. Depis de digitar alg e clicar n btã, será visualizada uma mensagem cm text d camp preenchid. 3.12.6 GERENCIADORES DE LAYOUT Quand sã adicinads nvs cmpnentes, cm Java sabe nde psiciná-ls? Pr que sempre sã adicinads d lad direit? Se a tela fr redimensinada (teste) - reduzind seu tamanh - s elements fluem para a linha de baix. Pr quê? Essas e utras perguntas sã respndidas pel Layut Manager, gerenciadr de layut d Swing. O Java vem cm uma série de layuts diferentes, que determinam cm s elements serã dispsts na tela, seus tamanhs preferenciais, cm eles se cmprtarã quand a janela fr redimensinada e muits utrs aspects. A escrever uma aplicaçã Swing deve-se indicar qual Layut Manager deseja-se utilizar. Pr padrã, é utilizad FlwLayut que especifica justamente que s elements devem ser justapsts, que eles devem fluir um para baix d utr quand a tela fr redimensinada e etc. Pderia-se usar um utr Layut Manager cm GridLayut, pr exempl. A aplicaçã ficaria da seguinte frma: Ntar cm s elements parecem estar dispsts em uma grade (um grid). A redimensinar essa tela, pr exempl, s elements nã fluem cm antes; eles sã redimensinads para se adaptarem a nv tamanh d grid. Ou ainda, usand BxLayut pel eix y, tend seguinte aspect: Há uma série de Layut Managers dispníveis n Java, cada um cm seu cmprtament específic. Além ds citads, destaca-se também BrderLayut. Há inclusive Layut Managers de terceirs (nã-ficiais d Java) que pdem ser baixads; prjet JGdies, pr exempl, tem um excelente Layut Manager timizad para trabalhar cm frmuláris, FrmLayut. Para saber mais sbre Layut Managers, quais sã e cm usar cada um deles, cnsulte a dcumentaçã da Swing.

Cnteúd: Prgramaçã Orientada a Objets Linguagem JAVA Página: 191 3.12.7 LOOK AND FEEL Lk-and-Feel (u LaF) é nme que se dá à cara da aplicaçã (suas cres, frmats e etc). Pr padrã, Java vem cm um lk-and-feel própri, que se cmprta exatamente da mesma frma em tdas as platafrmas suprtadas. Mas às vezes esse nã é resultad desejad. Quand rda-se a aplicaçã n Windws, pr exempl, é bastante gritante a diferença em relaçã a visual das aplicações nativas. Pr iss é pssível alterar qual lk-and-feel a ser usad na aplicaçã. Além d padrã d Java, JRE 5 da Sun ainda traz LaF nativs para Windws e Mac OS, além d Mtif e GTK. E, fra esses, ainda pdem ser baixads diverss LaF na Internet u até desenvlver s própris. Abaix estã alguns screenshts da dcumentaçã d Swing mstrand a mesma aplicaçã rdand cm 4 LaF diferentes: OBSERVAÇÕES: lk-and-feel atualmente em destaque: Nimbus, dispnível a partir d java 6 update 10; Para alterar lk-and-feel de um aplicativ é pssível usar métd estátic setlkandfeel() da classe javax.swing.uimanager. Tal métd requer um bjet LkAndFeel/ String cm nme da classe cm argument. Alguns exempls de bjets LkAndFeel: javax.swing.plaf.metal.metallkandfeel;

Cnteúd: Prgramaçã Orientada a Objets Linguagem JAVA Página: 192 javax.swing.plaf.synth.synthlkandfeel; Cnsultar javadc d Swing pde nã ser muit simples. Pr iss, a Sun dispnibiliza um ótim tutrial nline sbre Swing em seu Site: http://java.sun.cm/dcs/bks/tutrial/uiswing/ Existem alguns bns editres visuais (Drag-and-Drp) para se trabalhar cm Swing, entre prduts cmerciais e livres. Destaque para: Matisse, que vem embutid n Netbeans e é cnsiderad, hje, melhr editr; VEP (Visual Editr Plugin), um plugin que pde ser instalad n Eclipse; Aplicações grandes cm Swing pdem ganhar uma cmplexidade enrme e ficar difíceis de manter. Alguns prjets tentam minimizar esses prblemas; há, pr exempl, fams prjet Thinlet, nde vcê pde utilizar Swing escrevend suas interfaces gráficas em XML. 3.12.8 COMPLEMENTO OBRIGATÓRIO Capítul 14 Cmpnentes GUI: Parte 1. Livr Java Cm Prgramar, Deitel & Deitel, 8ª. Ediçã. Similar a Capítul 11 Cmpnentes GUI: Parte 1. Livr: Java Cm Prgramar, Deitel & Deitel, 6ª. Ediçã. 3.12.9 LEITURA RECOMENDADA Material indicad n iníci d tópic, cm rigem d text dispnibilizad; Fóruns na Internet. 3.12.10 EXERCÍCIOS Execuçã d Trabalh específic.