Interfaces Gracas em Java

Documentos relacionados
Interfaces Gracas em Java

Arquivos. Prof. Leonardo Barreto Campos 1

Aula 12 POO 1 Interface Gráfica no Java. Profa. Elaine Faria UFU

Programação III. Interface Gráfica - Swing. Interface Gráfica Swing Jocélio Passos joceliodpassos@bol.com.br. Interface Gráfica - Swing

MÓDULO 4 SWING Parte 3

Universidade Federal de Uberlândia Faculdade de Computação GGI030 Programação Orientada a Objetos 2o. Semestre de 2017 Prof.

Criando interfaces com o usuário. Continuação

Agenda. JFC (Java FoundaNon Classes) Interfaces Gráficas: layout manager JFC. Componentes do Swing. Pluggable Look and Feel

Introdução à Programação Gráfica em Java

Programação II. Cassio Diego

Elaborando Interfaces. Prof. André Aparecido da Silva Disponível em: Aulas 16, 17, e 18

Interfaces Gráficas (GUIs) em Java usando Swing Parte I - O básico

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

AULA 10 - CCT0024 Linguagem de Programação Objetivos da aula. Janelas para leitura e exibição de textos

8. Interfaces Gráficas de Usuário

Programação Java. Construção de Interface gráfica. Processo Básico: OO + Eventos. Exemplo

Aplicações de Linguagem de Programação Orientada a Objeto

Programação Orientada a Objetos com Java. Prof. Júlio Machado

Gerenciadores de Layout

Layout. Programação Orientada a Objetos Java. Prof. Geraldo Braz Junior. Baseado em material original de João Carlos Pinheiro CEFET/MA

Componentes GUI A aparência e maneira como um usuário pode interagir com componentes AWT diferem de acordo com a plataforma. Componentes Swing permite

Programação Gráfica em Java Alguns Componentes javax.swing

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Introdução à Tecnologia Java 02/2012. Java Aula 03. gráficas GUI Swing 29/08/2012. Celso Olivete Júnior.

Encerrando Introdução a Objetos e Classes Redefinição de Métodos (1)

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula de Revisão para AV1

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula de Revisão para AV1

Gerenciamento de Layout

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 1- Interfaces Gráficas com Swing

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

MANIPULAÇÃO DE EVENTOS

Elaborando as Interfaces Aulas 31, 32 e 33

Aula 2 Eventos do Mouse by Pearson Education do Brasil

Aula 11: Interfaces gráficas (1/2): elementos de interface Swing

Aplicação Linguagem de Programação Orientada a Objeto

Interface com o Usuário (UI) UIs Desacopladas (2/3) BSI Bacharelado em Sistemas de Informação LOO Linguagens Orientadas a Objetos

Elaborando as Interfaces dos trabalhos das aulas 28, 29 e 30.

Interfaces Gráficas POO. Prof. Márcio Delamaro

Java Standard Edition (JSE)

Exercício 1: Criar um programa que utiliza que desenha uma interface gráfica tal como descrito na Figura 1.1.

Programação Orientada a Objetos II

. Uma instância da classe JTextField gera uma instância da classe ActionEvent quando o objecto está activo e o utilizador pressiona a tecla ENTER.

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

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

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

Prof. Rogério Albuquerque de Almeida. Programação Orientada a Objetos II Java Nona aula

Fundamentos de GUIs. João Carlos Pinheiro. Última Atualização Junho / 2004 Versão: 3.0

TRATAMENTO DE EVENTOS EM JAVA USANDO SWING. George Gomes Cabral

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

Java - Swing. Raphaela Galhardo raphaela@j2eebrasil.com.br

Componentes Parte 01

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

Criação de Aplicações GUI. Java JFC / Swing

BCC221 Programação Orientada a Objetos. Prof. Marco Antonio M. Carvalho 2014/2

Interface Gráfica. GUI (Graphic User Interface) AWT e Swing Containers e componentes Layouts. Linguagem Java - Prof. Luciana Porcher Nedel 1

Aula 2 Even e to t s d o M ouse

Técnicas de Programação II

Interfaces Gráficas com Swing. Professor Leonardo Larback

TIC - Programação Visual. Componentes. Prof. Edwar Saliba Júnior Setembro de Unidade 14 Componentes 1

Prof. Fernando V. Paulovich 25 de julho de SCC Programação Orientada a Objetos

Componentes GUI: Parte by Pearson Education do Brasil

Interface Gráfica. Prof. Marcelo Cohen. (material da Profa. Luciana Nedel) Graphical User Interface (GUI)

Elaborando Interfaces. Prof. André Aparecido da Silva Disponível em: Aulas 16, 17, e 18

JMENU, JDESKTOPPANE E JINTERNALFRAME

Tratamento de Eventos em Programas com GUI - Graphical User Interface. Jorge H. C. Fernandes UFRN Junho de 2001

Processo Básico: OO + Eventos. Java First-Tier: Aplicações. Construção de Interface gráfica. Exemplo. Exemplo. Exemplo. Hierarquia de Composição

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 5- Tratamento de Eventos de Manipulação de textos

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

BCC221 Programação Orientada a Objetos. Prof. Marco Antonio M. Carvalho 2013/1

Java First-Tier: Aplicações. Abstract Window Toolkit (AWT) Construção de Interfaces com Swing (I) Swing: Características

Programação Visual em Java

Modulo I Swing Básico

Componentes no Java SE

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 4- Tratamento de Eventos em Interfaces Gráficas

JAVA. Gerenciadores de Layout. Tiago Alves de Oliveira

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Aula 15 Interface Gáfica. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

COM220 Aula 17: Interface Gráfica Containers Swing

Desenvolvimento de Aplicações Desktop

Interface Gráficas Parte I. Bruno Crestani Calegaro

Componentes Parte 02

Componentes GUI: Parte 1

Orientação a Objetos

Interface Gráfica. Prof. Marcelo Cohen

LSD LSD PICC. Manuela Sousa

Orientação a Objetos

Java Deployment Course

JAVA APLICAÇÕES GRÁFICAS Propriedades Utilizadas: Font size Animation FACULDADE DE TECNOLOGIA SENAC PELOTAS

CONTEÚDO PROGRAMÁTICO

MODEL-VIEW-CONTROLER. Prof. Fellipe Aleixo

Roteiro. Introdução. Uma Introdução à Programação Orientada a Objetos e JAVA usando NetBeans. Objetos. Princípios da Orientação a Objetos

Pacote Java Swing Parte 1

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Escrito por Sex, 14 de Outubro de :26 - Última atualização Seg, 05 de Dezembro de :59

Aula Prática Criando Views e Controles

Interface gráfica em Java: Swing e SWT

Swing Módulo II. Tiago Alves de Oliveira. Tiago Alves de Oliveira 1

JFC/Swing. LPGII - Java Interface Gráfica JFC/Swing. Introdução JFC / Swing. Introdução JFC / Swing

Criação de interfaces gráficas

Transcrição:

Interfaces Gracas em Java Sumario I SWING eneralidades I Componentes e Contentores I Modelo de eventos I Gestores de Colocac~ao I Componentes e Contentores com exemplos Biblioraa I The Java Tutorial, Trail: Creatin a GUI with JFC/Swin I \Java How to Proram", Deitel & Deitel, (captulo 12) I The Java API

Suest~oes para estudar/praticar I http://developer.java.sun.com/developer/onlinetrainin/ I ver os exemplos que v^em com o JDK (directorio demo) I ver exemplos (downloadable) do livro de Deitel & Deitel Java Foundation Classes (JFC) conjunto de APIs na tentativa de tornar o Java uma linuaem para aplicac~oes empresarais completas JFC e composta por 5 APIs: I AWT I Java 2D I Acessibilidade I Dra and Drop I Swin AWT Abstract Windowin Toolkit

Swin resumo I Widets do Swin extendem os do AWT I O modelo de eventos do AWT continua a ser usado I Baseado em Componentes (e Contentores) I suporta os componentes do AWT mais outros (ex JComponent) I Dra and Drop Support - troca de informac~ao entre aplicac~oes noutra API do JFC I Utiliza componentes lihtweiht (n~ao dependentes de componentes nativos) I Utiliza uma variante da arquitectura Model View Controller (MVC) I Tem Pluable Look And Feel (PLAF) - visual das janelas conuravel I Utiliza o Deleation Event Model Porqu^e Swin I AWT n~ao e sucientemente funcional para aplicac~oes industriais a biblioteca de widets e pequena os widets so disp~oem de funcionalidades basicas extens~oes s~ao habitualmente necessarias I componentes AWT dependem de componentes correspondentes nativos I widets n~ao t^em exactamente o mesmo comportamento em diferentes plataformas AWT { Abstract Windowin Toolkit

Pacotes importantes I javax.swin - new GUI tools com novos componentes... I javax.border - classes para desenhar contornos nos componentes I javax.swin.colorchooser - classes para escolha de cores I javax.swin.event - classe para novos modelos de eventos I javax.swin.lechooser - classes para escolha de cheiros I javax.swin.plaf.* - classes for the Pluable Look and Feel I javax.swin.text - manipulac~ao de texto I... I javax.accessibility - for disabled-persons accessibility Componente uteis

Componentes Heavyweiht I Usados pelo AWT I Rectanulares I Opacos I S~ao sempre desenhados em cima de componentes lihtweiht I Dependem de coneneres nativos I Look and Feel depedente do sistema operativo (SO) I funcionalidade determinada pelo SO I mais rapidos porque o SO realiza o trabalho Componentes Lihtweiht I Podem ter partes transparentes I Podem tomar qualquer forma I Podem-se sobrep^or entre eles I Eventos do rato ocorrem atraves das partes transparentes I N~ao depedem de coneneres nativos I Look and Feel desenhado em tempo de execuc~ao pelo que funcionalidades s~ao o mesmo em todas as plataformas. Mais lento por que o Java tem que fazer o trabalho.

Interface Graca basica import javax.swin.*; import java.awt.*; import java.awt.event.*; public class TestaJFramef public static void main(strin s[])f JFrame frame = new JFrame("Exemplo de JFrame"); Container c = frame.etcontentpane(); c.setbackround( Color.yellow ); c.add(new JButton(\botao"), BorderLayout.SOUTH); c.add(new JLabel(\Frase para o JLabel")); frame.addwindowlistener( new WindowAdapter() f // listener para terminar qd fecha janela public void windowclosin(windowevent event)f System.exit(0); ); frame.setsize(400,400); frame.show(); Resultado da Interface Graca basica

Elementos da Interface Graca I Contentores de topo - onde os outros componentes se desenham JFrame, JDialo, JApplet I Contentores Intermedios- facilitam arranjo de outros JPanel, JScrollPane, JTabbedPane I Componentes atomicos - apresentam informac~ao JButton, JComboBox, JTextField, Jtable I Criac~ao de Componentes I criac~ao do objecto I alterac~ao dos atributos I (para contentores) associac~ao de um estor de colocac~oes (Layout Manaer) I associac~ao de um estor de eventos e proramac~ao de comportamentos I (se n~ao e contentor de topo) adicionar a um contentor Swin hierarquia de componentes (semelhantes aos de AWT) do tutorial: http://developer.java.sun.com/developer/onlinetrainin/gui/swin1/

Swin hierarquia de componentes \novos" do tutorial: http://developer.java.sun.com/developer/onlinetrainin/gui/swin1/ Hierarquia de componentes comuns do Swin java.lan.object " java.awt.component " java.awt.container " javax.swin. JComponent

I View I \visual" do componente no ecr~a Model / View / Controller Elementos independentes: I Model I dados de estado para cada componente I dados diferentes para modelos diferentes I Controller I como o componente reae a eventos Comunicac~ao em MVC

Exemplo de MVC MVC em Java I Swin usa o model-deleate desin, uma arquitectura semelhante ao MVC. I O View e Controller s~ao combinados no UI deleate uma vez que o Java trata a maioria do seventos como o AWT. I Multiplas views podem ser usados com um unico modelo. I Mudancas num unico modelo podem afectar varias views. I Os componentes podem partilhar um modelo (JScrollbar e JSlider partilham o BoundedRaneModel).

MVC em Java Swin Eventos I EventObject I objecto com informac~ao sobre evento (inclui id fonte) I fontes de eventos: componentes I Object etsource() Returns the object that red the event I Tipos de eventos I eventos de baixo nvel I ex: eventos do rato e do teclado, resultados de entradas do utilizador I eventos sem^anticos I ex: eventos de acc~ao e de selecc~ao, com denic~ao dependente do componente I Tratamento: diriido pelos eventos sem^anticos I independentes da plataforma e do "look and feel" I independentes da composic~ao do objecto erador

Tratar Eventos I Tratar eventos I associar atendedores as fontes de eventos I cada fonte pode ter varios atendedores I cada atendedor pode tratar eventos de varias fontes I Usar um atendedor de eventos I denir classe que implementa um Listener ou extende classe que o implementa I public class UmaClasse implements ActionListener f... I Reistar uma inst^ancia do estor como atendedor de um ou mais componentes I umcomponente.addactionlistener(instanciadeumaclasse) I escrever codio para os metodos da interface do Listener I public void actionperformed(actionevent e) f... Reistar um Event handler

Atendedores de Eventos I Cada tipo de atendedor tem uma interface denida I interface tem metodos para todos os eventos que o atendedor pode tratar I atendedor especco tem de implementar todos os metodos I metodos para eventos irrelevantes podem ter corpo vazio I em vez de usar interface: usar adaptador I classe que implementa a interface e fornece metodos por omiss~ao I subclasse desta so tem de denir os metodos a que quer dar conteudo proprio Atendedores de Eventos I Classe do atendedor pode ser interna I classe interna tem acesso a atributos privados da classe I no exemplo: class QuitListener implements ActionListener f I Classe do atendedor pode ser anonima I desnecessario criar nome para classe que se dene para criar 1 so inst^ancia I no exemplo: combo.addactionlistener( new ActionListener () f public void actionperformed(actionevent e) f...)

Exemplos de Atendedores // classes embutidas ("nested") class QuitListener implements ActionListener f public void actionperformed(actionevent e) f System.exit(0); class ClickListener implements ActionListener f public void actionperformed(actionevent e) f numclicks++; etiqueta.settext(labelprex + numclicks); Deleation Event Model o Swin e baseado no Deleation Event Model do JDK 1.1 I No JDK 1.0 so as classes dos componentes t^em metodos para tratar eventos, e por isso nenhum outro objecto pode tratar eventos. I Metodos de tratamento e eventos de componentes s~ao sbstituidos por interfaces de event listener classes de adaptac~ao I Qualquer classe pode usar listener interfaces ou adapter classes.

Modelo de eventos do JDK 1.0 I proramas t^em que extender os componentes GUI e sobrep^or action() ou handleevent() I s~ao necessarias muitas classes I eventos s~ao propaados pela hierarquia acima do GUI ate serem consumidos ou atinirem a raiz I eventos para a hierarquia podem ser tratados por um container (e necessario uma instruc~ao condicional complexa) Problemas com o modelo de eventos do JDK 1.0 I extender a classe de um componente sem mudar nada e redundante e enfadonho I n~ao e possvel separar o modelo da aplicac~ao do GUI (n~ao ha MVC) I complicado processar tipos diferentes de eventos uma vez que os eventos s~ao tratados pelos mesmos metodos I events s~ao entreues aos componentes quer os componentes os processem ou n~ao

JDK 1.1 Event Listeners I objectos que implementam uma interface EventListener especca por extens~ao do enerico java.util.eventlistener I dene os metodos que pode ser invocados pela fonte de eventos em resposta a cada tipo de evento especco tratado pela interface I Baixo nvel I entrada de baixo nvel ou uma ocorr^encia janela-sistema num componente visual no ecr~a I java.awt.event.componentevent (redimensionamento de componente, movido, etc.) I java.awt.event.keyevent (componente recebeu key-press, key-release, etc.) I java.awt.event.mouseevent (componente recebeu mouse-down, mouse-move, etc.) I java.awt.event.focusevent (componente recebeu focus, perda de focus)

Tipos de Eventos I Sem^anticos I relacionados com a sem^antica do modelo de componentes de uma interface com o utilizador I java.awt.event.actionevent ("executa comando") I java.awt.event.adjustmentevent ("valor do componente ajustado") I java.awt.event.itemevent ("estado de um item modou") I java.awt.event.textevent ("o valor do texto mudou") Fontes de Eventos I Multiplos atendedores de eventos podem ser atribuidos a uma fonte (ordem n~ao e arantida) I Baixo nvel I java.awt.component I addcomponentlistener ( ComponentListener l) I addmouselistener ( MouseListener l) I addmousemotionlistener ( MouseMotionListener l) I Sem^antico I java.awt.list I addactionlistener ( ActionListener l) I additemlistener ( ActionListener l)

Classes de Adaptadores Estas podem ser extendidads em vez de se usar interfaces, quando o interface tem muitos metodos n~ao usados (ex: MouseMotionListener). As classes Adapter: I java.awt.event.componentadapter I java.awt.event.containeradapter I java.awt.event.focusadapter I java.awt.event.keyadapter I java.awt.event.mouseadapter I java.awt.event.mousemotionadapter I java.awt.event.windowadapter Layout Manaers I arranjam os widets de acordo com um padr~ao I podem actualizar os contentores para suportar redimensionamento do contentor ou componentes internos I tornam possvel a elaborac~ao de UIs complexos

Swin Gestor de Colocac~ao I Determina o arranjo dos componentes I tamanho e posic~ao dos componentes nos contentores I Variantes de Gestor: I BorderLayout, BoxLayout, FlowLayout, GridBaLayout, GridLayout, CardLayout NORTH I BorderLayout WETS CENTER EAST SOUTH I BoxLayout: componentes em linha I FlowLayout: componentes por ordem em linhas I GridLayout: componentes do mesmo tamanho, em linhas e colunas I GridBaLayout: componentes em linhas e colunas, tamanhos exveis Flow Layout I Arranja os componentes da esquerda para a direita e do cimo para baixo I Coloca tantos componentes numa linha quanto possivel antes de passar a linha seuinte I deixa o utilizador especicar o alinhamentoe espacamento horizontal e vertical toolbar.setlayout(new FlowLayout(FlowLayout.LEFT)); toolbar.add(playbutton); toolbar.add(stopbutton);

Border Layout I Dsitribui os componentes pelos bordos ou centro I NORTH I SOUTH I EAST I WEST I CENTER I permite especicar espacamento horizontal e vertical contentpanel.setlayout(new BorderLayout(0,0)); contentpanel.add(\center", opanel); contentpanel.add(\south, controlpanel); Grid Layout I Distribui os components numa relha com um numero de colunas e linahs especicado I linhas t^em a mesma altura e colunas a mesma larura contentpanel.setlayout(new GridLayout(2,4)); contentpanel.add(startbutton, 0, 0); contentpanel.add(stopbutton, 1, 3);

JLabel { exemplo import java.awt.*; import java.awt.event.*; import javax.swin.*; public class LabelTest extends JFrame f private JLabel label1, label2, label3; public LabelTest()f // constroi o GUI super( "Testin JLabel" ); Container container = etcontentpane(); // obtem area colocar componentes container.setlayout( new FlowLayout() ); label1 = new JLabel( "Label with text" ); // construtor com arumento Strin label1.settooltiptext( "This is label1" ); container.add( label1 ); Icon bu = new ImaeIcon("bu1.if"); label2 = new JLabel( "Label with text and icon", bu, SwinConstants.LEFT ); // construto label2.settooltiptext( "This is label2" ); container.add( label2 ); do livro Deitel Complementos & Deitel de Proramac~ao e Aloritmos { LEIC JLabel { exemplo continuac~ao label3 = new JLabel(); // construtor sem arumentos label3.settext( "Label with icon and text at bottom" ); label3.seticon( bu ); label3.sethorizontaltextposition( SwinConstants.CENTER ); label3.setverticaltextposition( SwinConstants.BOTTOM ); label3.settooltiptext( "This is label3" ); container.add( label3 ); setsize( 275, 170 ); setvisible( true ); public static void main( Strin ars[] ) f // executar a apliaccao LabelTest application = new LabelTest(); application.setdefaultcloseoperation(jframe.exit ON CLOSE ); // m da classe LabelTest

JTextField { exemplo import java.awt.*; import java.awt.event.*; import javax.swin.*; public class TextFieldTest extends JFrame f private JTextField textfield1, textfield2, textfield3; private JPasswordField passwordfield; public TextFieldTest() f // constroi o GUI super( "Testin JTextField and JPasswordField" ); Container container = etcontentpane(); container.setlayout( new FlowLayout() ); textfield1 = new JTextField( 10 ); container.add( textfield1 ); textfield2 = new JTextField( "Enter text here" ); container.add( textfield2 ); JTextField { exemplo continuac~ao textfield3 = new JTextField( "Uneditable text eld", 20 ); textfield3.seteditable( false ); container.add( textfield3 ); passwordfield = new JPasswordField( "Hidden text" ); container.add( passwordfield ); TextFieldHandler handler = new TextFieldHandler(); // reistar o handler textfield1.addactionlistener( handler ); textfield2.addactionlistener( handler ); textfield3.addactionlistener( handler ); passwordfield.addactionlistener( handler ); setsize( 325, 100 ); setvisible( true ); public static void main( Strin ars[] ) f // executar a apliaccao TextFieldTest application = new TextFieldTest(); application.setdefaultcloseoperation(jframe.exit ON CLOSE);

JTextField { exemplo continuac~ao private class TextFieldHandler implements ActionListener f //classe privada interna public void actionperformed( ActionEvent event )f // procesa os eventos Strin strin = ""; if ( event.etsource() == textfield1 ) strin = "textfield1: " + event.etactioncommand(); else if ( event.etsource() == textfield2 ) strin = "textfield2: " + event.etactioncommand(); else if ( event.etsource() == textfield3 ) strin = "textfield3: " + event.etactioncommand(); else if ( event.etsource() == passwordfield ) f JPasswordField pwd = (JPasswordField) event.etsource(); strin = "passwordfield: " + new Strin(passwordField.etPassword()); JOptionPane.showMessaeDialo( null, strin ); // m da classe privada interna TextFieldHandler // m da classe TextFieldTest JButton { exemplo import java.awt.*; import java.awt.event.*; import javax.swin.*; public class ButtonTest extends JFrame f private JButton plainbutton, fancybutton; public ButtonTest()f // cnstruir o GUI super( "Testin Buttons" ); Container container = etcontentpane(); container.setlayout( new FlowLayout() ); // criar os botoes plainbutton = new JButton( "Plain Button" ); container.add( plainbutton );

JButton { exemplo continuac~ao Icon bu1 = new ImaeIcon( "bu1.if" ); Icon bu2 = new ImaeIcon( "bu2.if" ); fancybutton = new JButton( "Fancy Button", bu1 ); fancybutton.setrollovericon( bu2 ); container.add( fancybutton ); ButtonHandler handler = new ButtonHandler(); // event handler para os botoes fancybutton.addactionlistener( handler ); plainbutton.addactionlistener( handler ); setsize( 275, 100 ); setvisible( true ); public static void main( Strin ars[] ) f ButtonTest application = new ButtonTest(); application.setdefaultcloseoperation(jframe.exit ON CLOSE); JButton { exemplo continuac~ao private class ButtonHandler implements ActionListener f public void actionperformed( ActionEvent event )f JOptionPane.showMessaeDialo(null,"You pressed: "+event.etactioncommand()); // m da classe privada interna ButtonHandler // m da classe ButtonTest

JRadioButton exemplo import java.awt.*; import java.awt.event.*; import javax.swin.*; public class RadioButtonTest extends JFrame f private JTextField eld; private Font plainfont, boldfont, italicfont, bolditalicfont; private JRadioButton plainbutton, boldbutton, italicbutton, bolditalicbutton; private ButtonGroup radiogroup; JRadioButton exemplo continuac~ao public RadioButtonTest()f // cria a GUI super( "RadioButton Test" ); Container container = etcontentpane(); // obtem area para colocacao componente container.setlayout( new FlowLayout() ); // escolhe layout eld = new JTextField("Watch the font style chane", 25); container.add( eld ); // criar os botoes plainbutton = new JRadioButton("Plain", true); container.add(plainbutton); boldbutton = new JRadioButton( "Bold", false ); container.add( boldbutton ); italicbutton = new JRadioButton( "Italic", false ); container.add( italicbutton ); bolditalicbutton = new JRadioButton("Bold/Italic", false); container.add(bolditalicbutton);

JRadioButton exemplo continuac~ao // reistar o handler para os botoes RadioButtonHandler handler = new RadioButtonHandler(); plainbutton.additemlistener( handler ); boldbutton.additemlistener( handler ); italicbutton.additemlistener( handler ); bolditalicbutton.additemlistener( handler ); // criar a relacao entre os botoes de um JRadioButtons radiogroup = new ButtonGroup(); radiogroup.add( plainbutton ); radiogroup.add( boldbutton ); radiogroup.add( italicbutton ); radiogroup.add( bolditalicbutton ); JRadioButton exemplo continuac~ao // criar objectos tipo font plainfont = new Font( "Serif", Font.PLAIN, 14 ); boldfont = new Font( "Serif", Font.BOLD, 14 ); italicfont = new Font( "Serif", Font.ITALIC, 14 ); bolditalicfont = new Font( "Serif", Font.BOLD + Font.ITALIC, 14 ); eld.setfont( plainfont ); setsize( 300, 100 ); setvisible( true );

JRadioButton exemplo continuac~ao public static void main( Strin ars[] ) f // executar a aplicacao RadioButtonTest application = new RadioButtonTest(); application.setdefaultcloseoperation(jframe.exit ON CLOSE ); private class RadioButtonHandler implements ItemListener f public void itemstatechaned( ItemEvent event ) f // processar eventos if ( event.etsource() == plainbutton ) // click no plainbutton eld.setfont( plainfont ); else if ( event.etsource() == boldbutton ) // click no boldbutton eld.setfont( boldfont ); else if ( event.etsource() == italicbutton ) // click no italicbutton eld.setfont( italicfont ); else if ( event.etsource() == bolditalicbutton ) // click no bolditalicbutton eld.setfont( bolditalicfont ); // m da classe privada RadioButtonHandler // m da classe RadioButtonTest JComboBox exemplo import java.awt.*; import java.awt.event.*; import javax.swin.*; public class ComboBoxTest extends JFrame f private JComboBox imaescombobox; private JLabel label; private Strin names[] = f"bu1.if","bu2.if", "travelbu.if","buanim.if" ; private Icon icons[] = f new ImaeIcon(names[0]), new ImaeIcon(names[1]), new ImaeIcon(names[2]), new ImaeIcon(names[3]) ;

JComboBox exemplo continuac~ao public ComboBoxTest() f // construir a GUI super( "Testin JComboBox" ); Container container = etcontentpane(); // obter area para colocar componentes container.setlayout(new FlowLayout()); // escolher layout imaescombobox = new JComboBox(names); imaescombobox.setmaximumrowcount(3); imaescombobox.additemlistener( // crie e reiste o \listener" new ItemListener() f // classe anonima public void itemstatechaned(itemevent event) f // \event handler" if ( event.etstatechane() == ItemEvent.SELECTED ) label.seticon(icons[imaescombobox.etselectedindex()]); // m da classe anonima ); // m do reisto do \listener" container.add( imaescombobox ); label = new JLabel( icons[ 0 ] ); // cria o JLabel container.add( label ); // coloca no contentor setsize( 350, 100 ); setvisible( true ); JComboBox exemplo continuac~ao public static void main( Strin ars[] ) f // execute a aplicacao ComboBoxTest application = new ComboBoxTest(); application.setdefaultcloseoperation(jframe.exit ON CLOSE ); // m da classe ComboBoxTest

JPanel exemplo import java.awt.*; import java.awt.event.*; import javax.swin.*; public class PanelDemo extends JFrame f private JPanel buttonpanel; private JButton buttons[]; public PanelDemo() f // preparacao da GUI super( "Panel Demo" ); Container container = etcontentpane(); // obter local colocacao componentes buttons = new JButton[ 5 ]; // criar o array de botoes buttonpanel = new JPanel(); buttonpanel.setlayout(new GridLayout(1, buttons.lenth)); //escolha do layout JPanel exemplo { continuac~ao // criar e adicionar os botoes for(int count = 0; count < buttons.lenth; count++) f buttons[count] = new JButton(\Button \ + (count + 1)); buttonpanel.add(buttons[count]); container.add( buttonpanel, BorderLayout.SOUTH ); setsize( 425, 150 ); setvisible( true ); public static void main( Strin ars[] ) f // execute a aplicacao PanelDemo application = new PanelDemo(); application.setdefaultcloseoperation(jframe.exit ON CLOSE); // m da classe PanelDemo