Java - Swing. Raphaela Galhardo raphaela@j2eebrasil.com.br http://www.j2eebrasil.com.br http://javarn.dev.java.net



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

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

8. Interfaces Gráficas de Usuário

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

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

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

Tratamento de Eventos

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

INTERFACE COM O USUÁRIO (em Java) Programação Orientada a Objetos

Programação Orientada a Objetos

MÓDULO 4 SWING Parte 3

Curso Java Starter. 1

Interface Gráficas Parte I. Bruno Crestani Calegaro

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

JAVA. Marcio de Carvalho Victorino. Interface Gráfica em Java (GUI)

Pacote Java Swing Parte 1

Módulo 7. Interface Gráfica com o Usuário GUI - Introdução. Programação Orientada a Objetos I Java (Rone Ilídio)

Programação Gráfica em Java.

Técnicas de Programação II

Programação Orientada a Objetos II

Curso de Aprendizado Industrial Desenvolvedor WEB

1) De acordo com o trecho de código escrito na linguagem JAVA, responda a questão abaixo:

1 Criando um aplicativo visual em Java

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

Gerenciadores de Layouts

Exemplo 1. Um programa que cria uma instância de uma classe que herda da classe Frame

Construção de Interfaces Gráficas

Is Event Dispatcher Threade (Animation)

JAVA APLICAÇÕES GRÁFICAS Propriedade Utilizada: FontSizeAnimation

Interface Gráfica. Prof. Marcelo Cohen

O programa abaixo exemplifica o uso da classe Image para carregar e mostrar uma imagem localizada em um arquivo.

Desenvolvimento de Aplicações Desktop

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

Arquitetura de Tratamento de Eventos em Programas com GUI - Graphical User Interface

Construção de Interfaces Gráficas - Introdução

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

Introdução à Programação. Interfaces Gráficas

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

Jogo Da Velha. - Parte 1 - Fazendo a parte gráfica do jogo da Velha

Exercícios 07 Introdução à POO (Interface Gráfica)

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

package br.com.cadastro.visao;

Curso de Java Módulo II Swing Fábio Mengue Centro de Computação - Unicamp

Programação Orientada a Objetos II

JTABLE STUDENT CONTROL JSC Gil Eduardo de Andrade / Emílio Rudolfo Fey Neto

JFrame. JLabel : Utilizado como rótulo para exibição de texto e ícones. Interface Gráfica de JAVA - Graphical User Interface (GUI)

Capítulo 12 Eventos de interacção

JAVA APLICAÇÕES GRÁFICAS Propriedades Utilizadas: Resize Shape Basic Shape FACULDADE DE TECNOLOGIA SENAC PELOTAS

Aplicações Gráficas com AWT

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.

Gerenciadores de Layout

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

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

Eclipse IDE Dá-se importância aos antepassados quando já não temos nenhum. Francois Chateaubriand

Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.

Tutorial de Computação Introdução a Programação Gráfica em Java para MEC1100 v

Criação de Applets Package: Class Name Base Class: Generate header comments: Can run standalone: Generate Standard methods:

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

Roteiro para criação de Applet

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

Especialização em Engenharia de Software - CEUT

Natureza do Software e dos Sistemas

Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Programando GUIs

Programação Visual em Java

Interface Gráfica. LPG II Java Interface Gráfica AWT. Introdução. AWT - Abstract Window Toolkit

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

Como usar a documentaçã

JFC/Swing. Java Avançado Interface Gráfica JFC/Swing. Introdução JFC / Swing. Introdução JFC / Swing

Linguagem Java - Prof. Luciana Porcher Nedel 1. Um container genérico e visual. Ela trabalha em cooperação com o controle de layouts.

Sistema de Recursos Humanos

JCheckbox JRadioButton JComboBox JList JMenu... Alguns componentes já vistos em aula JButton JLabel JTextField

Desenvolvendo aplicações

Introdução a programação gráfica em Java com Swing

Programação Java. Construção de Interfaces com Swing (I)

Programação por Objectos. Interfaces gráficas. Swing 1/52

Universidade Federal de Santa Maria UFSM Centro de Tecnologia CT. Power Point. Básico

Interfaces Gráficas: Interações Complexas

ALBUM DE FOTOGRAFIAS NO POWER POINT

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

Microsoft Office PowerPoint 2007

Slide 1 Deitel/Deitel, 8e. Java Como programar Copyright 2010 Pearson Education

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.

CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA A F B G C H D I

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

Guia de Início Rápido

Gerenciadores de Layout Parte 1

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

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

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

AWT Versus Swing. Java Deployment Course: Aula 5. por Jorge H C Fernandes (jhcf@di.ufpe.br) CESAR-DI-UFPE Recife, 1999

Capítulo 23. às s Interfaces Gráficas. Introdução. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Exemplo com SWING 1: Fazer uma aplicação, em Java, que tenha, na tela, uma JProgressBar, um JLabel e um JButton.

Transcrição:

Java - Swing Raphaela Galhardo raphaela@j2eebrasil.com.br http://www.j2eebrasil.com.br http://javarn.dev.java.net

Conteúdo Interface com Usuário; Eventos; Swing.

Introdução Interface com Usuário Grande Importância; Fornece ao programa uma aparência; Web; Gráfica (Swing).

Interface Gráfica Implementação envolve três passos: Instanciar componentes da interface Janelas, botões, campos de textos, etc. Adicionar os componentes ao container Um container é um repositório para elementos gráficos. Os principais são: Window(JFrame e JDialog) e Panel. Estabelecer o tratamento de eventos da interface Por ex., o que deve acontecer quando o usuário clica em um botão, ou se o usuário digita alguma coisa em um campo de texto, etc.

Swing javax.swing.*

Swing Componentes: Objetos visuais ou não visuais que podem interagir com o usuário; JCheckBox, JButton, JRadioButton.

Swing Containers: Descendentes de java.awt.container; Contém objetos visuais; Recebe os componentes criados; Utilizam gerenciador de Layout; Containers podem conter containers; JFrame, JApplet, JPanel, JScroolPane; Todos os containers são componentes, mas nem todos os componentes são containers; Um container (painel) pode ser inserido dentro de outro.

Swing Classe: javax.swing.jframe; Um objeto JFrame representa uma janela do sistema gráfico. Possui barra de título e bordas; Pode ser formado por diversos componentes: Botões (JButton); Radio buttons (JRadioButton); CheckBox (JCheckBox); Labels (JLabel); Campo texto (JTextField); Campo texto com várias linhas (JTextArea); Tabelas (JTable); etc.

Componentes Gráficos javax.swing.jbutton javax.swing.jcheckbox

Componentes Gráficos javax.swing.jradiobutton javax.swing.jcombobox

Componentes Gráficos javax.swing.jlabel javax.swing.jtextfield

Componentes Gráficos javax.swing.jlist

Componentes Gráficos javax.swing.jmenubar javax.swing.jmenu javax.swing.jmenuitem

Interface Gráfica Primeiro Exemplo. Arquivo SimpleGui1.java: import javax.swing.*; //Importa pacote swing public class SimpleGui1 { public static void main(string[] args) { JFrame frame = new JFrame(); //Cria Janela //Cria botão com texto "Clique Aqui" JButton button = new JButton("Clique Aqui"); //Finaliza o programa se a janela for fechada frame.setdefaultcloseoperation(jframe.exit_on_close); //Adiciona o botão à janela frame.getcontentpane().add(button); //Define a largura e a altura da janela em pixel frame.setsize(200, 300); //Permite a visualização da janela frame.setvisible(true);

Interface Gráfica Execução: java SimpleGui1 Exibe janela com um botão ocupando todo o espaço; Quando clica no botão, nada acontece. Apenas mostra que ele está sendo clicado.

Interface Gráfica O que fazer para algo executar quando o botão tiver sido clicado??? Necessitamos de duas coisa: Um método que execute a ação; Algo que identifique que o botão foi clicado: EVENTO.

Interface Gráfica Deseja-se que quando o botão for clicado o texto dele altere para Botão Clicado. 1º Passo: Escrever método que altere o texto do botão: public void mudatexto(){ button.settext( Botão Clicado ); Como saber quando o método deve ser executado? Como saber que o botão foi clicado? Tratamento de Evento do Usuário

Evento Comunicação do mundo externo para o programa que alguma coisa aconteceu; Programa passa a ser chamado quando algum evento é gerado na interface. Chamada a partir do registro de métodos para cada evento da interface que se deseja tratar.

Evento Exemplos de Eventos: Clique no botão; Botão está sendo pressionado; Botão está sendo solto; Clique do mouse; Digitar um campo de texto; Fechar janela; Selecionar um item do menu; Movimento do Mouse; Etc.

Eventos Tratamento de Eventos: 1º) O botão precisa saber que deve informar que ele foi clicado; 2º) O botão precisa de um caminho para chamar seu código de volta quando um evento de clique acontece. 1º) Ei. Botão! Interessa-me saber o que acontece a você 2º) O usuário me clicou!

Eventos Para saber dos eventos do botão, implemente uma interface que diz: Eu estou esperando por seus eventos ; Uma interface listener(ouvinte) é a ponte entre o que espera um evento (seu código) e o acontecimento do evento (botão).

Eventos Quando seu código implementa a interface listener, você informa ao botão um caminho de volta a seu código. Na interface, é onde o método a ser executado é declarado.

Eventos ActionListener: permite o tratamento de eventos que representam ações do usuário, tais como em objetos das classes JButton, JMenuBar outras; ItemListener: permite o tratamento de eventos que representam ações do usuário sobre objetos que significam itens de um menu, tais como em objetos das classes JCheckBox, JRadioButton, JComboBox e outras; MouseListener: permite o tratamento de eventos do mouse, tais como clicks, coordenadas e outros;

Eventos MouseMotionListener: permite o tratamento de eventos de movimento do mouse; KeyListener: permite o tratamento de eventos do teclado; WindowListener: permite o tratamento de eventos padronizados para objetos da classe JFrame.

Eventos Evento: Representado como Objeto; Passado para métodos do listener, descrevendo o evento ocorrido; Pacote: java.awt.event Grupo de Eventos: MouseEvent KeyEvent WindowEvent ActionEvent Outros.

Eventos

Eventos Obtendo um evento (ActionEvent) de um botão: Implemente a interface ActionListener; Registre-se com o botão, informando que deseja esperar por eventos; Defina um método para tratamento do evento, implementando o método actionperformed() da interface ActionListener.

Eventos import java.awt.event.*; import javax.swing.*; public class SimpleGui2 implements ActionListener{ //Declara botão como variável global JButton button; public void go() { JFrame frame = new JFrame(); //Cria Janela //Instancia botão com texto "Clique Aqui" button = new JButton("Clique Aqui"); /* Registra o interesse de ser informado sobre os eventos * que ocorrem no botão. this = objeto da classe SimpleGui2 */ button.addactionlistener(this); frame.getcontentpane().add(button); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.setsize(300, 300); frame.setvisible(true); //...

Eventos //... Continuação da classe SimpleGui2 /** Método que realiza o tratamento de evento. O botão invoca * este método passando um objeto ActionEvent como argumento.*/ public void actionperformed(actionevent e) { //Na ocorrência de um evento, trocar texto do botão button.settext("fui clicado"); //Método principal public static void main(string[] args) { SimpleGui2 gui = new SimpleGui2(); gui.go();

Eventos Execução do exemplo da classe SimpleGui2

JPanel JPanel: Área dedicada de desenho; Pode ser extendida para criação de novos componentes; Códigos dos gráficos dentro do método paintcomponente(graphics g) que deve ser reescrito.

JPanel 1º Exemplo import java.awt.color; import java.awt.graphics; import javax.swing.jpanel; /**SubClasse de JPanel.Componente que pode ser adicionado a um frame*/ public class ExPanel1 extends JPanel{ //Método que não será invocado pelo programador,chamado automaticamente public void paintcomponent(graphics g){ //g será o objeto para desenho //Define a cor da área gráfica a ser desenhada g.setcolor(color.orange); //Desenha retângulo começando nas coordenadas //x = 20 e y = 50, largura 150 e altura 100 píxels g.fillrect(20, 50, 150, 100);

JPanel 2º Exemplo import java.awt.graphics; import java.awt.image; import javax.swing.imageicon; import javax.swing.jpanel; public class ExPanel2 extends JPanel{ public void paintcomponent(graphics g){ //Cria objeto Image com o caminho da imagem Image imagem = new ImageIcon( getclass().getresource( /figuras/sic.gif )).getimage(); //Desenha imagem na tela, iniciando nas coordenadas x=10 e y=20 g.drawimage(imagem, 100, 100, this);

JPanel 3º Exemplo import java.awt.*; import javax.swing.jpanel; public class ExPanel3 extends JPanel{ public void paintcomponent(graphics g){ /* Desenha retângulo começando nas posições x = 0, y = 0 * A largura será igual a largura definida para a janela(this.getwidth()). * A altura será igual a altura definida para a janela(this.getheight()) * Retângulo desenhado em preto, já que nenhuma cor foi predefinida */ g.fillrect(0, 0, this.getwidth(), this.getheight()); //Define valores para a cor de forma aleatória int red = (int) (Math.random() * 255); int green = (int) (Math.random() * 255); int blue = (int) (Math.random() * 255); //Cria cor de acordo com os valores aleatórios Color randomcolor = new Color(red, green, blue); //Define cor aleatória para próximo desenho g.setcolor(randomcolor); //Desenha círculo começando nas posíções //x = 170 e y = 120 de largura = altura = 100 g.filloval(170, 120, 100, 100); //Define cor para próximo desenho g.setcolor(color.cyan); //Desenha um retângulo com impressão tridimensional g.draw3drect(3, 4, 100, 100, true);

JPanel Exibição import java.awt.borderlayout; import javax.swing.jframe; public class SimpleGui3{ //Declara frame como variável global JFrame frame; public void go() { frame = new JFrame(); frame.setdefaultcloseoperation(jframe.exit_on_close); ExPanel1 ep1 = new ExPanel1(); ExPanel2 ep2 = new ExPanel2(); ExPanel3 ep3 = new ExPanel3(); //Panel desenhado na posição central da janela frame.getcontentpane().add(borderlayout.center, ep1); frame.setsize(300, 300); frame.setvisible(true); public static void main(string[] args) { SimpleGui3 gui = new SimpleGui3(); gui.go();

JPanel Exibição 1º Panel

JPanel Exibição 2º Panel

JPanel Exibição 3º Panel

Gerenciadores de Layout Gerenciador de Layout: organiza os componentes GUI para apresentação; Não podemos posicionar os elementos através de coordenadas; Determinam o tamanho e a posição dos componentes na janela gráfica do programa; Posicionam Elementos seguindo uma regra.

Gerenciadores de Layout JPanel panela = new JPanel(); JPanel panelb = new JPanel(); panelb.add(new JButton( button 1 ); panelb.add(new JButton( button 2 ); panelb.add(new JButton( button 3 ); panela.add(panelb);

Gerenciadores de Layout Principais Gerenciadores: FlowLayout: coloca os componentes seqüencialmente da esquerda para a direita na ordem em que foram adicionados. BorderLayout: organiza os componentes em cinco áreas: norte, sul, leste, oeste e centro. BoxLayout: organiza componentes um abaixo do outro. GridLayout: organiza os componentes nas linhas e colunas.

Gerenciadores de Layout FlowLayout

Gerenciadores de Layout BorderLayout

Gerenciadores de Layout BoxLayout

Gerenciadores de Layout GridLayout

BorderLayout 1º Exemplo import java.awt.borderlayout; import javax.swing.*; public class Button1 { public void go(){ JFrame frame = new JFrame(); JButton button = new JButton("Clique Aqui"); frame.getcontentpane().add(borderlayout.east, button); frame.setsize(200, 200); frame.setvisible(true); public static void main(string[] args) { Button1 gui = new Button1(); gui.go();

BorderLayout 2º Exemplo import java.awt.borderlayout; import javax.swing.*; public class Button1 { public void go(){ JFrame frame = new JFrame(); JButton button = new JButton("Clique Aqui"); frame.getcontentpane().add(borderlayout.north, button); frame.setsize(200, 200); frame.setvisible(true); public static void main(string[] args) { Button1 gui = new Button1(); gui.go();

BorderLayout 3º Exemplo import java.awt.borderlayout; import javax.swing.*; public class Button1 { public void go(){ JFrame frame = new JFrame(); JButton button = new JButton("Clique Aqui"); Font f = new Font("srif", Font.BOLD, 28); button.setfont(f); frame.getcontentpane().add(borderlayout.north, button); frame.setsize(200, 200); frame.setvisible(true); public static void main(string[] args) { Button1 gui = new Button1(); gui.go();

BorderLayout 4º Exemplo import java.awt.borderlayout;import javax.swing.*; public class Button1 { public void go(){ JFrame frame = new JFrame(); JButton east = new JButton("Eeast"); JButton west = new JButton("West"); JButton north = new JButton("North"); JButton south = new JButton("South"); JButton center = new JButton("Center"); frame.getcontentpane().add(borderlayout.east, east); frame.getcontentpane().add(borderlayout.west, west); frame.getcontentpane().add(borderlayout.north, north); frame.getcontentpane().add(borderlayout.south, south); frame.getcontentpane().add(borderlayout.center, center); frame.setsize(300, 300); frame.setvisible(true); public static void main(string[] args) { Button1 gui = new Button1(); gui.go();

BorderLayout 5º Exemplo import java.awt.*; import javax.swing.*; public class SimpleGui4 implements ActionListener{ JFrame frame; public void go() { frame = new JFrame(); frame.setdefaultcloseoperation(jframe.exit_on_close); JButton button = new JButton("Mudar Cor"); button.addactionlistener(this);//espera evento //Cria panel para desenhar círculo ExPanel4 ep4 = new ExPanel4(); //Adiciona botão na região SOUTH do frame frame.getcontentpane().add(borderlayout.south, button); //Adiciona panel na região central frame.getcontentpane().add(borderlayout.center, ep4); //... frame.setsize(300, 300); frame.setvisible(true);

BorderLayout 5º Exemplo //... Continuação da classe SimpleGui4 public void actionperformed(actionevent e) { //Toda vida que o botão for clicado, a tela vai redesenhar frame.repaint(); public static void main(string[] args) { SimpleGui4 gui = new SimpleGui4(); gui.go();

BorderLayout Resultado 5º Ex.

FlowLayout 1º Exemplo import java.awt.*;import javax.swing.*; public class Button2 { public void go(){ JFrame frame = new JFrame(); frame.setlayout(new FlowLayout()); JButton button1 = new JButton("Botão 1"); JButton button2 = new JButton("Botão 2"); JButton button3 = new JButton("Botão 3"); frame.getcontentpane().add(button1); frame.getcontentpane().add(button2); frame.getcontentpane().add(button3); frame.setsize(200, 200); frame.setvisible(true); public static void main(string[] args) { Panel1 gui = new Panel1(); gui.go();

FlowLayout 2º Exemplo import java.awt.*;import javax.swing.*; public class Panel1 { public void go(){ JFrame frame = new JFrame(); JPanel panel = new JPanel(); //Define cor do fundo do panel panel.setbackground(color.cyan); //Cria botões e adiciona ao panel JButton button1 = new JButton("Botão 1"); JButton button2 = new JButton("Botão 2"); panel.add(button1); panel.add(button2); frame.getcontentpane().add(borderlayout.east, panel); frame.setsize(250, 200); frame.setvisible(true); public static void main(string[] args) { Panel1 gui = new Panel1(); gui.go();

BoxLayout 1º Exemplo import java.awt.*;import javax.swing.*; public class Panel2 { public void go(){ JFrame frame = new JFrame(); JPanel panel = new JPanel(); panel.setbackground(color.cyan); panel.setlayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); JButton button1 = new JButton("Botão 1"); JButton button2 = new JButton("Botão 2"); panel.add(button1); panel.add(button2); frame.getcontentpane().add(borderlayout.east, panel); frame.setsize(250, 200); frame.setvisible(true); public static void main(string[] args) { Panel2 gui = new Panel2(); gui.go();

GridLayout 1º Exemplo import java.awt.*;import javax.swing.*; public class Panel3 { public void go(){ JFrame frame = new JFrame(); frame.setlayout(new GridLayout(2, 3)); JButton button1 = new JButton("Botão 1"); JButton button2 = new JButton("Botão 2"); JButton button3 = new JButton("Botão 3"); JButton button4 = new JButton("Botão 4"); JButton button5 = new JButton("Botão 5"); JButton button6 = new JButton("Botão 6"); frame.getcontentpane().add(button1); frame.getcontentpane().add(button2); frame.getcontentpane().add(button3); frame.getcontentpane().add(button4); frame.getcontentpane().add(button5); frame.getcontentpane().add(button6); frame.setsize(300, 150); frame.setvisible(true);

BorderLayout 6º Exemplo Deseja-se 4 componentes:

BorderLayout 6º Exemplo 1ª Opção: Implementar dois método actionperformed() class MyGui implements ActionListener{... public void actionperformed(actionevent e){ frame.repaint(); public void actionperformed(actionevent e){ label.settext( Novo Texto ); Não permitido implementar o mesmo método duas vezes em Java!!

BorderLayout 6º Exemplo 2ª Opção: Mesmo método actionperformed() para dois botões class MyGui implements ActionListener{ //...Declara variáveis public void go(){ //... Constrói a GUI colorbutton = new JButton(); labelbutton = new JButton(); //Registra ambos botões colorbutton.addactionlistener(this); labelbutton.addactionlistener(this); //... Demais códigos public void actionperformed(actionevent e){ if (e.getsource() == colorbutton) frame.repaint(); else label.settext( Novo Texto );

BorderLayout 6º Exemplo 3ª Opção: Criar duas classes ActionListener separadas class MyGui { JFrame frame; JLavel label; public void go(){ //... Constrói a GUI //Fecha classe MyGui class ColorButtonListener implements ActionListener{ public void actionperformed(actionevent e){ frame.repaint(); //Fecha classe ColorButtonListener Classe ColorButtonListener não sabe quem é frame nem a classe LabelButtonListener sabe quem é label class LabelButtonListener implements ActionListener{ public void actionperformed(actionevent e){ label.settext( Muda Texto ); //Fecha classe LabelButtonListener

BorderLayout 6º Exemplo Solução: INNER CLASS Classes Internas: Classe dentro de outra classe; Classe interna pode usar todos os métodos e variáveis da classe mais externa; Instância da classe interna apenas dentro da classe externa. class MyClass{ private int x; class MyInnserClass{ void go(){ x = 30;

BorderLayout 6º Exemplo Solução: INNER CLASS Exemplo de instância da inner class: class MyClass{ private int x; MyInnerClass inner = new MyInnerClass(); public void do(){ inner.go(); class MyInnerClass{ void go(){ x = 30;

BorderLayout Solução 6º Ex. import java.awt.borderlayout; import java.awt.event.*; import javax.swing.*; public class TwoButtons { JFrame frame; JLabel label; public void go(){ frame = new JFrame(); frame.setdefaultcloseoperation(jframe.exit_on_close); JButton labelbuton = new JButton("Mudar Label"); labelbuton.addactionlistener(new LabelListener()); //LabelListener:innerClass JButton colorbutton = new JButton("Mudar Círculo"); colorbutton.addactionlistener(new ColorListener()); //ColorLisntener:innerClass label = new JLabel("Eu sou um Label"); ExPanel4 ep4 = new ExPanel4(); //... frame.getcontentpane().add(borderlayout.south, colorbutton); frame.getcontentpane().add(borderlayout.center, ep4); frame.getcontentpane().add(borderlayout.east, labelbuton); frame.getcontentpane().add(borderlayout.west, label); frame.setsize(500, 300); frame.setvisible(true);

BorderLayout Solução 6º Ex. //... Continuação classe TwoButtons //Classe interna que trata mudança de texto do label class LabelListener implements ActionListener{ public void actionperformed(actionevent e) { label.settext("texto Alterado"); //Fecha classe LabelListener //Classe interna que trata mudança do círculo class ColorListener implements ActionListener{ public void actionperformed(actionevent e) { frame.repaint(); //Fecha classe ColorListener //Método principal public static void main(string[] args) { TwoButtons gui = new TwoButtons(); gui.go(); //Fecha classe TwoButtons

JComponent Método getname( ) setname(string n) getparent( ) isvisible( ) setvisible( boolean b) isshowing( ) isenabled( ) Descrição Retorna o nome do componente Atribui um nome ao componente Retorna o Container onde o componente foi adicionado Determina se o componente é visível. Componentes são inicialmente visíveis, exceto Frame, Window e Dialog. Torna o componente visível ou não, de acordo com o parâmetro. Retorna true se o componente for visível e estiver dentro de um outro componente que está sendo mostrado. Determina se um componente está habilitado para receber a entrada do usuário e gerar eventos. Componentes são inicialmente habilitados.

JComponent Método setenabled(boolean b) settooltiptext(string text) setpreferredsize(dimension d) getpreferredsize() Descrição Habilita ou desabilita o componente. Registra o texto para ser mostrado em tooltip Atribui o tamanho desejado Retorna o tamanho do componente.

Container Método add(component c) add(component c, int i) getalingnmentx() getalingnmenty() removeall( ) setlayout(layoutmanager l) Descrição Adiciona um componente ao container. Adiciona um componente ao container na posição indicada pelo segundo parâmetro. Retorna um inteiro correspondente ao alinhamento no eixo x. Retorna um inteiro correspondente ao alinhamento no eixo y. Remove todos os componentes inseridos. Reorganiza o container e todos os seus componentes.

Exemplos

Exemplos

Exemplos

Exemplos

Exemplos

Exemplos

Exemplos

Exemplos

Exemplos

Exemplos

Exemplos

Exemplos

Referências Material Didático. Gleydson Lima; Head First Java. Kathy Sierra & Bert Bates; Java Como Programar. Deitel; www.j2eebrasil.com.br www.google.com