Post on 09-Mar-2020
transcript
Introdução à Tecnologia Java – 02/2012
Java – Aula 03
Continuação de interfaces Continuação de interfaces gráficas – GUI Swing
29/08/2012Celso Olivete Júnior
olivete@fct.unesp.br
1
Introdução à Tecnologia Java – 02/2012GUIs e imagens gráficas: Criando desenhos simples
• Sistema de coordenadas do Java:•Definido pelas coordenadas x e coordenadas y.
•Também conhecidas como coordenadas horizontais e verticais.
•São medidas ao longo do eixo X e do eixo Y.
•Unidades coordenadas são medidas em pixels.
•Classe Graphics no pacote java.awt•Classe Graphics no pacote java.awt•Fornece os métodos para desenhar texto e formas.
•Classe JPanel no pacote javax.swing•Fornece uma área para desenhar.
• Classe Jframe pode ser utilizada para o desenho, mas não éconveniente, porque o espaço da barra de título precisa serlevado em conta no cálculo dascoordenadas y.
Celso Olivete Júnior 2
Introdução à Tecnologia Java – 02/2012
Sistema de coordenadas do Java: unidades
em pixels
Celso Olivete Júnior 3
Introdução à Tecnologia Java – 02/2012
Criando desenhos simples (Continuação)
• Herança:
•Palavra-chave extends.
•A subclasse herda da superclasse:•A subclasse herda da superclasse:
•A subclasse tem os dados e os métodos que a
superclasse tem, bem como aqueles que ela define
para si própria.
Celso Olivete Júnior 4
Introdução à Tecnologia Java – 02/2012
Exemplo: Linhas que se estendem a partir de
um canto
Celso Olivete Júnior 5
5
Introdução à Tecnologia Java – 02/2012
Exemplo 1 // Fig. 4.19: DrawPanel.java// Fig. 4.19: DrawPanel.java// Fig. 4.19: DrawPanel.java// Fig. 4.19: DrawPanel.java
2 // Desenha duas linhas que se cruzam em um painel.// Desenha duas linhas que se cruzam em um painel.// Desenha duas linhas que se cruzam em um painel.// Desenha duas linhas que se cruzam em um painel.
3 importimportimportimport java.awt.Graphics; java.awt.Graphics; java.awt.Graphics; java.awt.Graphics;
4 importimportimportimport javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel;
5
6 publicpublicpublicpublic classclassclassclass DrawPanel DrawPanel DrawPanel DrawPanel extendsextendsextendsextends JPanel JPanel JPanel JPanel
7 {{{{
8 // desenha um X a partir dos cantos do painel// desenha um X a partir dos cantos do painel// desenha um X a partir dos cantos do painel// desenha um X a partir dos cantos do painel
9 publicpublicpublicpublic voidvoidvoidvoid paintComponent( Graphics g ) paintComponent( Graphics g ) paintComponent( Graphics g ) paintComponent( Graphics g )
10 { { { {
Celso Olivete Júnior 6
6
10 { { { {
11 // chama paintComponent para assegurar que o painel é exibido corretamente// chama paintComponent para assegurar que o painel é exibido corretamente// chama paintComponent para assegurar que o painel é exibido corretamente// chama paintComponent para assegurar que o painel é exibido corretamente
12 supersupersupersuper.paintComponent( g );.paintComponent( g );.paintComponent( g );.paintComponent( g );
13
14 intintintint width = getWidth(); width = getWidth(); width = getWidth(); width = getWidth(); // largura total// largura total// largura total// largura total
15 intintintint height = getHeight(); height = getHeight(); height = getHeight(); height = getHeight(); // altura total// altura total// altura total// altura total
16
17 // desenha uma linha a partir do canto superior esquerdo até o inferior direito// desenha uma linha a partir do canto superior esquerdo até o inferior direito// desenha uma linha a partir do canto superior esquerdo até o inferior direito// desenha uma linha a partir do canto superior esquerdo até o inferior direito
18 g.drawLine( g.drawLine( g.drawLine( g.drawLine( 0000, , , , 0000, width, height );, width, height );, width, height );, width, height );
19
20 // desenha uma linha a partir do canto inferi// desenha uma linha a partir do canto inferi// desenha uma linha a partir do canto inferi// desenha uma linha a partir do canto inferior esquerdo até o superior direitoor esquerdo até o superior direitoor esquerdo até o superior direitoor esquerdo até o superior direito
21 g.drawLine( g.drawLine( g.drawLine( g.drawLine( 0000, height, width, , height, width, , height, width, , height, width, 0000 ); ); ); );
22 } } } } // fim do método paintComponent// fim do método paintComponent// fim do método paintComponent// fim do método paintComponent
23 } } } } // fim da classe DrawPanel// fim da classe DrawPanel// fim da classe DrawPanel// fim da classe DrawPanel
Introdução à Tecnologia Java – 02/2012
Exemplo 1 // Fig. 4.19: DrawPanel.java// Fig. 4.19: DrawPanel.java// Fig. 4.19: DrawPanel.java// Fig. 4.19: DrawPanel.java
2 // Desenha duas linhas que se cruzam em um painel.// Desenha duas linhas que se cruzam em um painel.// Desenha duas linhas que se cruzam em um painel.// Desenha duas linhas que se cruzam em um painel.
3 importimportimportimport java.awt.Graphics; java.awt.Graphics; java.awt.Graphics; java.awt.Graphics;
4 importimportimportimport javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel;
5
6 publicpublicpublicpublic classclassclassclass DrawPanel DrawPanel DrawPanel DrawPanel extendsextendsextendsextends JPanel JPanel JPanel JPanel
7 {{{{
8 // desenha um X a partir dos cantos do painel// desenha um X a partir dos cantos do painel// desenha um X a partir dos cantos do painel// desenha um X a partir dos cantos do painel
9 publicpublicpublicpublic voidvoidvoidvoid paintComponent( Graphics g ) paintComponent( Graphics g ) paintComponent( Graphics g ) paintComponent( Graphics g )
10 { { { {
Importa as classes java.awt.Graphicsjava.awt.Graphicsjava.awt.Graphicsjava.awt.Graphics ejavax.swing.JPaneljavax.swing.JPaneljavax.swing.JPaneljavax.swing.JPanel
Celso Olivete Júnior 7
7
10 { { { {
11 // chama paintComponent para assegurar que o painel é exibido corretamente// chama paintComponent para assegurar que o painel é exibido corretamente// chama paintComponent para assegurar que o painel é exibido corretamente// chama paintComponent para assegurar que o painel é exibido corretamente
12 supersupersupersuper.paintComponent( g );.paintComponent( g );.paintComponent( g );.paintComponent( g );
13
14 intintintint width = getWidth(); width = getWidth(); width = getWidth(); width = getWidth(); // largura total// largura total// largura total// largura total
15 intintintint height = getHeight(); height = getHeight(); height = getHeight(); height = getHeight(); // altura total// altura total// altura total// altura total
16
17 // desenha uma linha a partir do canto superior esquerdo até o inferior direito// desenha uma linha a partir do canto superior esquerdo até o inferior direito// desenha uma linha a partir do canto superior esquerdo até o inferior direito// desenha uma linha a partir do canto superior esquerdo até o inferior direito
18 g.drawLine( g.drawLine( g.drawLine( g.drawLine( 0000, , , , 0000, width, height );, width, height );, width, height );, width, height );
19
20 // desenha uma linha a partir do canto inferi// desenha uma linha a partir do canto inferi// desenha uma linha a partir do canto inferi// desenha uma linha a partir do canto inferior esquerdo até o superior direitoor esquerdo até o superior direitoor esquerdo até o superior direitoor esquerdo até o superior direito
21 g.drawLine( g.drawLine( g.drawLine( g.drawLine( 0000, height, width, , height, width, , height, width, , height, width, 0000 ); ); ); );
22 } } } } // fim do método paintComponent// fim do método paintComponent// fim do método paintComponent// fim do método paintComponent
23 } } } } // fim da classe DrawPanel// fim da classe DrawPanel// fim da classe DrawPanel// fim da classe DrawPanel
Introdução à Tecnologia Java – 02/2012
Exemplo 1 // Fig. 4.19: DrawPanel.java// Fig. 4.19: DrawPanel.java// Fig. 4.19: DrawPanel.java// Fig. 4.19: DrawPanel.java
2 // Desenha duas linhas que se cruzam em um painel.// Desenha duas linhas que se cruzam em um painel.// Desenha duas linhas que se cruzam em um painel.// Desenha duas linhas que se cruzam em um painel.
3 importimportimportimport java.awt.Graphics; java.awt.Graphics; java.awt.Graphics; java.awt.Graphics;
4 importimportimportimport javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel;
5
6 publicpublicpublicpublic classclassclassclass DrawPanel DrawPanel DrawPanel DrawPanel extendsextendsextendsextends JPanel JPanel JPanel JPanel
7 {{{{
8 // desenha um X a partir dos cantos do painel// desenha um X a partir dos cantos do painel// desenha um X a partir dos cantos do painel// desenha um X a partir dos cantos do painel
9 publicpublicpublicpublic voidvoidvoidvoid paintComponent( Graphics g ) paintComponent( Graphics g ) paintComponent( Graphics g ) paintComponent( Graphics g )
10 { { { {
Importa as classes java.awt.Graphicsjava.awt.Graphicsjava.awt.Graphicsjava.awt.Graphics ejavax.swing.JPaneljavax.swing.JPaneljavax.swing.JPaneljavax.swing.JPanel
A classe DrawPanelDrawPanelDrawPanelDrawPanel estende
a classe JPanelJPanelJPanelJPanel
Celso Olivete Júnior 8
8
10 { { { {
11 // chama paintComponent para assegurar que o painel é exibido corretamente// chama paintComponent para assegurar que o painel é exibido corretamente// chama paintComponent para assegurar que o painel é exibido corretamente// chama paintComponent para assegurar que o painel é exibido corretamente
12 supersupersupersuper.paintComponent( g );.paintComponent( g );.paintComponent( g );.paintComponent( g );
13
14 intintintint width = getWidth(); width = getWidth(); width = getWidth(); width = getWidth(); // largura total// largura total// largura total// largura total
15 intintintint height = getHeight(); height = getHeight(); height = getHeight(); height = getHeight(); // altura total// altura total// altura total// altura total
16
17 // desenha uma linha a partir do canto superior esquerdo até o inferior direito// desenha uma linha a partir do canto superior esquerdo até o inferior direito// desenha uma linha a partir do canto superior esquerdo até o inferior direito// desenha uma linha a partir do canto superior esquerdo até o inferior direito
18 g.drawLine( g.drawLine( g.drawLine( g.drawLine( 0000, , , , 0000, width, height );, width, height );, width, height );, width, height );
19
20 // desenha uma linha a partir do canto inferi// desenha uma linha a partir do canto inferi// desenha uma linha a partir do canto inferi// desenha uma linha a partir do canto inferior esquerdo até o superior direitoor esquerdo até o superior direitoor esquerdo até o superior direitoor esquerdo até o superior direito
21 g.drawLine( g.drawLine( g.drawLine( g.drawLine( 0000, height, width, , height, width, , height, width, , height, width, 0000 ); ); ); );
22 } } } } // fim do método paintComponent// fim do método paintComponent// fim do método paintComponent// fim do método paintComponent
23 } } } } // fim da classe DrawPanel// fim da classe DrawPanel// fim da classe DrawPanel// fim da classe DrawPanel
Introdução à Tecnologia Java – 02/2012
Exemplo 1 // Fig. 4.19: DrawPanel.java// Fig. 4.19: DrawPanel.java// Fig. 4.19: DrawPanel.java// Fig. 4.19: DrawPanel.java
2 // Desenha duas linhas que se cruzam em um painel.// Desenha duas linhas que se cruzam em um painel.// Desenha duas linhas que se cruzam em um painel.// Desenha duas linhas que se cruzam em um painel.
3 importimportimportimport java.awt.Graphics; java.awt.Graphics; java.awt.Graphics; java.awt.Graphics;
4 importimportimportimport javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel;
5
6 publicpublicpublicpublic classclassclassclass DrawPanel DrawPanel DrawPanel DrawPanel extendsextendsextendsextends JPanel JPanel JPanel JPanel
7 {{{{
8 // desenha um X a partir dos cantos do painel// desenha um X a partir dos cantos do painel// desenha um X a partir dos cantos do painel// desenha um X a partir dos cantos do painel
9 publicpublicpublicpublic voidvoidvoidvoid paintComponent( Graphics g ) paintComponent( Graphics g ) paintComponent( Graphics g ) paintComponent( Graphics g )
10 { { { {
Importa as classes java.awt.Graphicsjava.awt.Graphicsjava.awt.Graphicsjava.awt.Graphics ejavax.swing.JPaneljavax.swing.JPaneljavax.swing.JPaneljavax.swing.JPanel
A classe DrawPanelDrawPanelDrawPanelDrawPanel estende
a classe JPanelJPanelJPanelJPanel
Celso Olivete Júnior 9
9
10 { { { {
11 // chama paintComponent para assegurar que o painel é exibido corretamente// chama paintComponent para assegurar que o painel é exibido corretamente// chama paintComponent para assegurar que o painel é exibido corretamente// chama paintComponent para assegurar que o painel é exibido corretamente
12 supersupersupersuper.paintComponent( g );.paintComponent( g );.paintComponent( g );.paintComponent( g );
13
14 intintintint width = getWidth(); width = getWidth(); width = getWidth(); width = getWidth(); // largura total// largura total// largura total// largura total
15 intintintint height = getHeight(); height = getHeight(); height = getHeight(); height = getHeight(); // altura total// altura total// altura total// altura total
16
17 // desenha uma linha a partir do canto superior esquerdo até o inferior direito// desenha uma linha a partir do canto superior esquerdo até o inferior direito// desenha uma linha a partir do canto superior esquerdo até o inferior direito// desenha uma linha a partir do canto superior esquerdo até o inferior direito
18 g.drawLine( g.drawLine( g.drawLine( g.drawLine( 0000, , , , 0000, width, height );, width, height );, width, height );, width, height );
19
20 // desenha uma linha a partir do canto inferi// desenha uma linha a partir do canto inferi// desenha uma linha a partir do canto inferi// desenha uma linha a partir do canto inferior esquerdo até o superior direitoor esquerdo até o superior direitoor esquerdo até o superior direitoor esquerdo até o superior direito
21 g.drawLine( g.drawLine( g.drawLine( g.drawLine( 0000, height, width, , height, width, , height, width, , height, width, 0000 ); ); ); );
22 } } } } // fim do método paintComponent// fim do método paintComponent// fim do método paintComponent// fim do método paintComponent
23 } } } } // fim da classe DrawPanel// fim da classe DrawPanel// fim da classe DrawPanel// fim da classe DrawPanel
Declara o método paintComponent paintComponent paintComponent paintComponent –––– chamado chamado chamado chamado quando o componente é criado quando o componente é criado quando o componente é criado quando o componente é criado
Todo desenho é feito neste método
Introdução à Tecnologia Java – 02/2012
Exemplo 1 // Fig. 4.19: DrawPanel.java// Fig. 4.19: DrawPanel.java// Fig. 4.19: DrawPanel.java// Fig. 4.19: DrawPanel.java
2 // Desenha duas linhas que se cruzam em um painel.// Desenha duas linhas que se cruzam em um painel.// Desenha duas linhas que se cruzam em um painel.// Desenha duas linhas que se cruzam em um painel.
3 importimportimportimport java.awt.Graphics; java.awt.Graphics; java.awt.Graphics; java.awt.Graphics;
4 importimportimportimport javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel;
5
6 publicpublicpublicpublic classclassclassclass DrawPanel DrawPanel DrawPanel DrawPanel extendsextendsextendsextends JPanel JPanel JPanel JPanel
7 {{{{
8 // desenha um X a partir dos cantos do painel// desenha um X a partir dos cantos do painel// desenha um X a partir dos cantos do painel// desenha um X a partir dos cantos do painel
9 publicpublicpublicpublic voidvoidvoidvoid paintComponent( Graphics g ) paintComponent( Graphics g ) paintComponent( Graphics g ) paintComponent( Graphics g )
10 { { { {
Importa as classes java.awt.Graphicsjava.awt.Graphicsjava.awt.Graphicsjava.awt.Graphics ejavax.swing.JPaneljavax.swing.JPaneljavax.swing.JPaneljavax.swing.JPanel
A classe DrawPanelDrawPanelDrawPanelDrawPanel estende
a classe JPanelJPanelJPanelJPanel
Celso Olivete Júnior 10
10
10 { { { {
11 // chama paintComponent para assegurar que o painel é exibido corretamente// chama paintComponent para assegurar que o painel é exibido corretamente// chama paintComponent para assegurar que o painel é exibido corretamente// chama paintComponent para assegurar que o painel é exibido corretamente
12 supersupersupersuper.paintComponent( g );.paintComponent( g );.paintComponent( g );.paintComponent( g );
13
14 intintintint width = getWidth(); width = getWidth(); width = getWidth(); width = getWidth(); // largura total// largura total// largura total// largura total
15 intintintint height = getHeight(); height = getHeight(); height = getHeight(); height = getHeight(); // altura total// altura total// altura total// altura total
16
17 // desenha uma linha a partir do canto superior esquerdo até o inferior direito// desenha uma linha a partir do canto superior esquerdo até o inferior direito// desenha uma linha a partir do canto superior esquerdo até o inferior direito// desenha uma linha a partir do canto superior esquerdo até o inferior direito
18 g.drawLine( g.drawLine( g.drawLine( g.drawLine( 0000, , , , 0000, width, height );, width, height );, width, height );, width, height );
19
20 // desenha uma linha a partir do canto inferi// desenha uma linha a partir do canto inferi// desenha uma linha a partir do canto inferi// desenha uma linha a partir do canto inferior esquerdo até o superior direitoor esquerdo até o superior direitoor esquerdo até o superior direitoor esquerdo até o superior direito
21 g.drawLine( g.drawLine( g.drawLine( g.drawLine( 0000, height, width, , height, width, , height, width, , height, width, 0000 ); ); ); );
22 } } } } // fim do método paintComponent// fim do método paintComponent// fim do método paintComponent// fim do método paintComponent
23 } } } } // fim da classe DrawPanel// fim da classe DrawPanel// fim da classe DrawPanel// fim da classe DrawPanel
Recupera a largura e
altura do JPanelJPanelJPanelJPanel
Declara o método paintComponent paintComponent paintComponent paintComponent –––– chamado chamado chamado chamado quando o componente é criado quando o componente é criado quando o componente é criado quando o componente é criado
Todo desenho é feito neste método
Introdução à Tecnologia Java – 02/2012
Exemplo 1 // Fig. 4.19: DrawPanel.java// Fig. 4.19: DrawPanel.java// Fig. 4.19: DrawPanel.java// Fig. 4.19: DrawPanel.java
2 // Desenha duas linhas que se cruzam em um painel.// Desenha duas linhas que se cruzam em um painel.// Desenha duas linhas que se cruzam em um painel.// Desenha duas linhas que se cruzam em um painel.
3 importimportimportimport java.awt.Graphics; java.awt.Graphics; java.awt.Graphics; java.awt.Graphics;
4 importimportimportimport javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel;
5
6 publicpublicpublicpublic classclassclassclass DrawPanel DrawPanel DrawPanel DrawPanel extendsextendsextendsextends JPanel JPanel JPanel JPanel
7 {{{{
8 // desenha um X a partir dos cantos do painel// desenha um X a partir dos cantos do painel// desenha um X a partir dos cantos do painel// desenha um X a partir dos cantos do painel
9 publicpublicpublicpublic voidvoidvoidvoid paintComponent( Graphics g ) paintComponent( Graphics g ) paintComponent( Graphics g ) paintComponent( Graphics g )
10 { { { {
Importa as classes java.awt.Graphicsjava.awt.Graphicsjava.awt.Graphicsjava.awt.Graphics ejavax.swing.JPaneljavax.swing.JPaneljavax.swing.JPaneljavax.swing.JPanel
A classe DrawPanelDrawPanelDrawPanelDrawPanel estende
a classe JPanelJPanelJPanelJPanel
Declara o método
Celso Olivete Júnior 11
11
10 { { { {
11 // chama paintComponent para assegurar que o painel é exibido corretamente// chama paintComponent para assegurar que o painel é exibido corretamente// chama paintComponent para assegurar que o painel é exibido corretamente// chama paintComponent para assegurar que o painel é exibido corretamente
12 supersupersupersuper.paintComponent( g );.paintComponent( g );.paintComponent( g );.paintComponent( g );
13
14 intintintint width = getWidth(); width = getWidth(); width = getWidth(); width = getWidth(); // largura total// largura total// largura total// largura total
15 intintintint height = getHeight(); height = getHeight(); height = getHeight(); height = getHeight(); // altura total// altura total// altura total// altura total
16
17 // desenha uma linha a partir do canto superior esquerdo até o inferior direito// desenha uma linha a partir do canto superior esquerdo até o inferior direito// desenha uma linha a partir do canto superior esquerdo até o inferior direito// desenha uma linha a partir do canto superior esquerdo até o inferior direito
18 g.drawLine( g.drawLine( g.drawLine( g.drawLine( 0000, , , , 0000, width, height );, width, height );, width, height );, width, height );
19
20 // desenha uma linha a partir do canto inferi// desenha uma linha a partir do canto inferi// desenha uma linha a partir do canto inferi// desenha uma linha a partir do canto inferior esquerdo até o superior direitoor esquerdo até o superior direitoor esquerdo até o superior direitoor esquerdo até o superior direito
21 g.drawLine( g.drawLine( g.drawLine( g.drawLine( 0000, height, width, , height, width, , height, width, , height, width, 0000 ); ); ); );
22 } } } } // fim do método paintComponent// fim do método paintComponent// fim do método paintComponent// fim do método paintComponent
23 } } } } // fim da classe DrawPanel// fim da classe DrawPanel// fim da classe DrawPanel// fim da classe DrawPanel
Declara o método paintComponent paintComponent paintComponent paintComponent –––– chamado chamado chamado chamado quando o componente é criado quando o componente é criado quando o componente é criado quando o componente é criado
Todo desenho é feito neste método
Desenha as duas linhas
Recupera a largura e
altura do JPanelJPanelJPanelJPanel
Introdução à Tecnologia Java – 02/2012
Criando desenhos simples (Continuação)
•Classe JFrame do pacote javax.swing:•Permite ao programador criar uma janela.
•Método setDefaultCloseOperation:•Passa JFrame.EXIT_ON_CLOSE como seu argumento paraconfigurar a aplicação a terminar quando o usuário fecha aconfigurar a aplicação a terminar quando o usuário fecha ajanela.
•Método Add:•Anexa uma JPanel a Jframe.
•Método setSize:•Configura a largura (primeiro argumento) e altura (segundoargumento) da Jframe.
Celso Olivete Júnior 12
Introdução à Tecnologia Java – 02/2012
Exemplo 1 // Fig. 4.20: DrawPanelTest.java// Fig. 4.20: DrawPanelTest.java// Fig. 4.20: DrawPanelTest.java// Fig. 4.20: DrawPanelTest.java
2 // Aplicativo para exibir uma DrawPanel.// Aplicativo para exibir uma DrawPanel.// Aplicativo para exibir uma DrawPanel.// Aplicativo para exibir uma DrawPanel.
3 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
4 5 publicpublicpublicpublic classclassclassclass DrawPanelTest DrawPanelTest DrawPanelTest DrawPanelTest
6 {{{{
7 publicpublicpublicpublic staticstaticstaticstatic voidvoidvoidvoid main( String args[] ) main( String args[] ) main( String args[] ) main( String args[] )
8 { { { {
9 // cria um painel que contém nosso // cria um painel que contém nosso // cria um painel que contém nosso // cria um painel que contém nosso desenhodesenhodesenhodesenho
10 DrawPanel panel = DrawPanel panel = DrawPanel panel = DrawPanel panel = newnewnewnew DrawPanel(); DrawPanel(); DrawPanel(); DrawPanel();
11
Importa a classe JFrameJFrameJFrameJFrame da
classe javax.swingjavax.swingjavax.swingjavax.swing
Cria objetos DrawPanelDrawPanelDrawPanelDrawPanel e JFrameJFrameJFrameJFrame
Celso Olivete Júnior 13
11 12 // cria um novo quadro para conter o painel// cria um novo quadro para conter o painel// cria um novo quadro para conter o painel// cria um novo quadro para conter o painel
13 JFrame application = JFrame application = JFrame application = JFrame application = newnewnewnew JFrame(); JFrame(); JFrame(); JFrame();
14 15 // configura o frame para ser encerrado quando ele é fechado// configura o frame para ser encerrado quando ele é fechado// configura o frame para ser encerrado quando ele é fechado// configura o frame para ser encerrado quando ele é fechado
16 application.setDefaultCloseOperation( application.setDefaultCloseOperation( application.setDefaultCloseOperation( application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSE ); ); ); );
17 18 application.add( panel ); application.add( panel ); application.add( panel ); application.add( panel ); // adiciona o painel ao frame// adiciona o painel ao frame// adiciona o painel ao frame// adiciona o painel ao frame
19 application.setSize( application.setSize( application.setSize( application.setSize( 250250250250, , , , 250250250250 ); ); ); ); // configura o tamanho do frame// configura o tamanho do frame// configura o tamanho do frame// configura o tamanho do frame
20 application.setVisible( application.setVisible( application.setVisible( application.setVisible( truetruetruetrue ); ); ); ); // torna o frame visível // torna o frame visível // torna o frame visível // torna o frame visível
21 } } } } // fim de main// fim de main// fim de main// fim de main
22 } } } } // fim da classe DrawPanelTest// fim da classe DrawPanelTest// fim da classe DrawPanelTest// fim da classe DrawPanelTest
Configura a aplicação para
terminar quando o
usuário fecha a janela
Adiciona a DrawPanelDrawPanelDrawPanelDrawPanel a JFrameJFrameJFrameJFrame
Configura o tamanho e exibe o JFrameJFrameJFrameJFrame
Introdução à Tecnologia Java – 02/2012
Exemplo: Linhas que se estendem a partir de
um cantoResultado do programa anterior:
Celso Olivete Júnior 14
Altere o programa para obter os seguintes resultados:
Introdução à Tecnologia Java – 02/2012
Desenho de linhas com loops e drawLine
Altere o programa para obter os seguintes resultados:
Celso Olivete Júnior 15
Introdução à Tecnologia Java – 02/2012
Criando desenhos simples (Continuação)
•A classe Jpanel:
•Cada JPanel tem um método paintComponent:•paintComponent é chamado sempre que o sistema precisa exibiro Jpanel.
Métodos getWidth e getHeight:•Métodos getWidth e getHeight:•Retornam a largura e a altura da JPanel, respectivamente.
•Método drawLine:•Desenha uma linha a partir das coordenadas definidas pelosseus dois primeiros argumentos de acordo com as coordenadasdefinidas pelos seus dois segundos argumentos
Celso Olivete Júnior 16
Introdução à Tecnologia Java – 02/2012
JOptionPaneDiálogo de entrada exibido nas linhas 10–11
Campo de texto em que
o usuário digita umvalor
Prompt para o usuário
Quando o usuárioclica em OK,
showInputDialogretorna ao programa o
100 digitado pelo usuário como uma
String. O programa deve converter a String
em um int
Celso Olivete Júnior 17
Diálogo de entrada exibido nas linhas 12–13
Diálogo de entrada exibido nas linhas 22–23
barra de título
Quando o usuário clique em OK, o diálogo de
mensagem é fechado (é removido da tela)
Introdução à Tecnologia Java – 02/2012
Entrada/saída baseada em GUI simples com
JOptionPane
• Caixas de diálogo:
•Utilizadas pelas aplicações para interagir com o•Utilizadas pelas aplicações para interagir com o
usuário.
•Fornecidas pela classe JOptionPane do Java
(pacote javax.swing).
•Contém diálogos de entrada e diálogos de mensagem.
Celso Olivete Júnior 18
Introdução à Tecnologia Java – 02/2012
ExemploR
og
éri
o E
du
ard
o G
arc
ia
1 // Fig. 11.2: Addition.java// Fig. 11.2: Addition.java// Fig. 11.2: Addition.java// Fig. 11.2: Addition.java
2 // // // // Programa de adição que utiliza JOptionPane para entrada e saídaPrograma de adição que utiliza JOptionPane para entrada e saídaPrograma de adição que utiliza JOptionPane para entrada e saídaPrograma de adição que utiliza JOptionPane para entrada e saída....
3 importimportimportimport javax.swing.JOptionPane; javax.swing.JOptionPane; javax.swing.JOptionPane; javax.swing.JOptionPane; // program// program// program// programaaaa u u u uttttilizailizailizailiza JOptionPane JOptionPane JOptionPane JOptionPane
4
5 public classpublic classpublic classpublic class Addition Addition Addition Addition
6 {{{{
7 public static voidpublic static voidpublic static voidpublic static void main( String args[] ) main( String args[] ) main( String args[] ) main( String args[] )
8 {{{{
9 // // // // obtém a entrada de usuário a partir dos diálogos de entrada JOptionPaneobtém a entrada de usuário a partir dos diálogos de entrada JOptionPaneobtém a entrada de usuário a partir dos diálogos de entrada JOptionPaneobtém a entrada de usuário a partir dos diálogos de entrada JOptionPane
10 String firstNumber =String firstNumber =String firstNumber =String firstNumber =
Mostra o diálogo de entrada para
receber o primeiro inteiro
Celso Olivete Júnior 19
Ro
gé
rio
Ed
ua
rdo
Ga
rcia
19
11 JOptionPane.showInputDialog( JOptionPane.showInputDialog( JOptionPane.showInputDialog( JOptionPane.showInputDialog( "Enter first integer""Enter first integer""Enter first integer""Enter first integer" ); ); ); );
12 String secondNumber =String secondNumber =String secondNumber =String secondNumber =
13 JOptionPane.showInputDialog( JOptionPane.showInputDialog( JOptionPane.showInputDialog( JOptionPane.showInputDialog( "Enter second integer""Enter second integer""Enter second integer""Enter second integer" ); ); ); );
14
15 // // // // converte String em valores int para utilização em um cálculoconverte String em valores int para utilização em um cálculoconverte String em valores int para utilização em um cálculoconverte String em valores int para utilização em um cálculo
16 intintintint number1 = Integer.parseInt( firstNumber ); number1 = Integer.parseInt( firstNumber ); number1 = Integer.parseInt( firstNumber ); number1 = Integer.parseInt( firstNumber );
17 intintintint number2 = Integer.parseInt( secondNumber ); number2 = Integer.parseInt( secondNumber ); number2 = Integer.parseInt( secondNumber ); number2 = Integer.parseInt( secondNumber );
18
19 intintintint sum = number1 + number2; sum = number1 + number2; sum = number1 + number2; sum = number1 + number2; // // // // aaaadicionadicionadicionadiciona n n n núúúúmerosmerosmerosmeros
20
21 // // // // exibe o resultado em um diálogo de mensagem JOptionPaneexibe o resultado em um diálogo de mensagem JOptionPaneexibe o resultado em um diálogo de mensagem JOptionPaneexibe o resultado em um diálogo de mensagem JOptionPane
22 JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( nullnullnullnull, , , , "T"T"T"The sum is "he sum is "he sum is "he sum is " + sum, + sum, + sum, + sum,
23 "Sum of Two Integers""Sum of Two Integers""Sum of Two Integers""Sum of Two Integers", , , , JOptionPane.PLAIN_MESSAGEJOptionPane.PLAIN_MESSAGEJOptionPane.PLAIN_MESSAGEJOptionPane.PLAIN_MESSAGE ); ); ); );
24 } } } } // // // // fim do métodofim do métodofim do métodofim do método main main main main
25 } } } } // // // // fim da classefim da classefim da classefim da classe AdditionAdditionAdditionAddition
Introdução à Tecnologia Java – 02/2012
ExemploR
og
éri
o E
du
ard
o G
arc
ia
1 // Fig. 11.2: Addition.java// Fig. 11.2: Addition.java// Fig. 11.2: Addition.java// Fig. 11.2: Addition.java
2 // // // // Programa de adição que utiliza JOptionPane para entrada e saídaPrograma de adição que utiliza JOptionPane para entrada e saídaPrograma de adição que utiliza JOptionPane para entrada e saídaPrograma de adição que utiliza JOptionPane para entrada e saída....
3 importimportimportimport javax.swing.JOptionPane; javax.swing.JOptionPane; javax.swing.JOptionPane; javax.swing.JOptionPane; // program// program// program// programaaaa u u u uttttilizailizailizailiza JOptionPane JOptionPane JOptionPane JOptionPane
4
5 public classpublic classpublic classpublic class Addition Addition Addition Addition
6 {{{{
7 public static voidpublic static voidpublic static voidpublic static void main( String args[] ) main( String args[] ) main( String args[] ) main( String args[] )
8 {{{{
9 // // // // obtém a entrada de usuário a partir dos diálogos de entrada JOptionPaneobtém a entrada de usuário a partir dos diálogos de entrada JOptionPaneobtém a entrada de usuário a partir dos diálogos de entrada JOptionPaneobtém a entrada de usuário a partir dos diálogos de entrada JOptionPane
10 String firstNumber =String firstNumber =String firstNumber =String firstNumber =
Mostra o diálogo de entrada para
receber o primeiro inteiro
Mostra o diálogo de entrada para
receber o segundo inteiro
Celso Olivete Júnior 20
Ro
gé
rio
Ed
ua
rdo
Ga
rcia
20
11 JOptionPane.showInputDialog( JOptionPane.showInputDialog( JOptionPane.showInputDialog( JOptionPane.showInputDialog( "Enter first integer""Enter first integer""Enter first integer""Enter first integer" ); ); ); );
12 String secondNumber =String secondNumber =String secondNumber =String secondNumber =
13 JOptionPane.showInputDialog( JOptionPane.showInputDialog( JOptionPane.showInputDialog( JOptionPane.showInputDialog( "Enter second integer""Enter second integer""Enter second integer""Enter second integer" ); ); ); );
14
15 // // // // converte String em valores int para utilização em um cálculoconverte String em valores int para utilização em um cálculoconverte String em valores int para utilização em um cálculoconverte String em valores int para utilização em um cálculo
16 intintintint number1 = Integer.parseInt( firstNumber ); number1 = Integer.parseInt( firstNumber ); number1 = Integer.parseInt( firstNumber ); number1 = Integer.parseInt( firstNumber );
17 intintintint number2 = Integer.parseInt( secondNumber ); number2 = Integer.parseInt( secondNumber ); number2 = Integer.parseInt( secondNumber ); number2 = Integer.parseInt( secondNumber );
18
19 intintintint sum = number1 + number2; sum = number1 + number2; sum = number1 + number2; sum = number1 + number2; // // // // aaaadicionadicionadicionadiciona n n n núúúúmerosmerosmerosmeros
20
21 // // // // exibe o resultado em um diálogo de mensagem JOptionPaneexibe o resultado em um diálogo de mensagem JOptionPaneexibe o resultado em um diálogo de mensagem JOptionPaneexibe o resultado em um diálogo de mensagem JOptionPane
22 JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( nullnullnullnull, , , , "T"T"T"The sum is "he sum is "he sum is "he sum is " + sum, + sum, + sum, + sum,
23 "Sum of Two Integers""Sum of Two Integers""Sum of Two Integers""Sum of Two Integers", , , , JOptionPane.PLAIN_MESSAGEJOptionPane.PLAIN_MESSAGEJOptionPane.PLAIN_MESSAGEJOptionPane.PLAIN_MESSAGE ); ); ); );
24 } } } } // // // // fim do métodofim do métodofim do métodofim do método main main main main
25 } } } } // // // // fim da classefim da classefim da classefim da classe AdditionAdditionAdditionAddition
Mostra o diálogo de entrada para
receber o segundo inteiro
Introdução à Tecnologia Java – 02/2012
ExemploR
og
éri
o E
du
ard
o G
arc
ia
1 // Fig. 11.2: Addition.java// Fig. 11.2: Addition.java// Fig. 11.2: Addition.java// Fig. 11.2: Addition.java
2 // // // // Programa de adição que utiliza JOptionPane para entrada e saídaPrograma de adição que utiliza JOptionPane para entrada e saídaPrograma de adição que utiliza JOptionPane para entrada e saídaPrograma de adição que utiliza JOptionPane para entrada e saída....
3 importimportimportimport javax.swing.JOptionPane; javax.swing.JOptionPane; javax.swing.JOptionPane; javax.swing.JOptionPane; // program// program// program// programaaaa u u u uttttilizailizailizailiza JOptionPane JOptionPane JOptionPane JOptionPane
4
5 public classpublic classpublic classpublic class Addition Addition Addition Addition
6 {{{{
7 public static voidpublic static voidpublic static voidpublic static void main( String args[] ) main( String args[] ) main( String args[] ) main( String args[] )
8 {{{{
9 // // // // obtém a entrada de usuário a partir dos diálogos de entrada JOptionPaneobtém a entrada de usuário a partir dos diálogos de entrada JOptionPaneobtém a entrada de usuário a partir dos diálogos de entrada JOptionPaneobtém a entrada de usuário a partir dos diálogos de entrada JOptionPane
10 String firstNumber =String firstNumber =String firstNumber =String firstNumber =
Mostra o diálogo de entrada para
receber o primeiro inteiro
Mostra o diálogo de entrada para
receber o segundo inteiro
Celso Olivete Júnior 21
Ro
gé
rio
Ed
ua
rdo
Ga
rcia
21
11 JOptionPane.showInputDialog( JOptionPane.showInputDialog( JOptionPane.showInputDialog( JOptionPane.showInputDialog( "Enter first integer""Enter first integer""Enter first integer""Enter first integer" ); ); ); );
12 String secondNumber =String secondNumber =String secondNumber =String secondNumber =
13 JOptionPane.showInputDialog( JOptionPane.showInputDialog( JOptionPane.showInputDialog( JOptionPane.showInputDialog( "Enter second integer""Enter second integer""Enter second integer""Enter second integer" ); ); ); );
14
15 // // // // converte String em valores int para utilização em um cálculoconverte String em valores int para utilização em um cálculoconverte String em valores int para utilização em um cálculoconverte String em valores int para utilização em um cálculo
16 intintintint number1 = Integer.parseInt( firstNumber ); number1 = Integer.parseInt( firstNumber ); number1 = Integer.parseInt( firstNumber ); number1 = Integer.parseInt( firstNumber );
17 intintintint number2 = Integer.parseInt( secondNumber ); number2 = Integer.parseInt( secondNumber ); number2 = Integer.parseInt( secondNumber ); number2 = Integer.parseInt( secondNumber );
18
19 intintintint sum = number1 + number2; sum = number1 + number2; sum = number1 + number2; sum = number1 + number2; // // // // aaaadicionadicionadicionadiciona n n n núúúúmerosmerosmerosmeros
20
21 // // // // exibe o resultado em um diálogo de mensagem JOptionPaneexibe o resultado em um diálogo de mensagem JOptionPaneexibe o resultado em um diálogo de mensagem JOptionPaneexibe o resultado em um diálogo de mensagem JOptionPane
22 JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( nullnullnullnull, , , , "T"T"T"The sum is "he sum is "he sum is "he sum is " + sum, + sum, + sum, + sum,
23 "Sum of Two Integers""Sum of Two Integers""Sum of Two Integers""Sum of Two Integers", , , , JOptionPane.PLAIN_MESSAGEJOptionPane.PLAIN_MESSAGEJOptionPane.PLAIN_MESSAGEJOptionPane.PLAIN_MESSAGE ); ); ); );
24 } } } } // // // // fim do métodofim do métodofim do métodofim do método main main main main
25 } } } } // // // // fim da classefim da classefim da classefim da classe AdditionAdditionAdditionAddition
Mostra o diálogo de entrada para
receber o segundo inteiro
Mostra o diálogo de mensagem
para gerar a saída da soma para o
usuário
Introdução à Tecnologia Java – 02/2012
ExemploDiálogo de entrada exibido nas linhas 10–11
Campo de texto em que
o usuário digita umvalor
Prompt para o usuário
Quando o usuárioclica em OK,
showInputDialogretorna ao programa o
100 digitado pelo usuário como uma
String. O programa deve converter a String
em um int
Celso Olivete Júnior 22
Diálogo de entrada exibido nas linhas 12–13
Diálogo de entrada exibido nas linhas 22–23
barra de título
Quando o usuário clique em OK, o diálogo de
mensagem é fechado (é removido da tela)
Introdução à Tecnologia Java – 02/2012
Constantes JOptionPane static para diálogos
de mensagemTipo de diálogo de mensagem Ícone Descrição
ERROR_MESSAGEERROR_MESSAGEERROR_MESSAGEERROR_MESSAGE
Um diálogo que indica um erro para o usuário.
Celso Olivete Júnior 23
INFORMATION_MESSAGEINFORMATION_MESSAGEINFORMATION_MESSAGEINFORMATION_MESSAGE
Um diálogo com uma mensagem informativa para o usuário.
WARWARWARWARNING_MESSAGENING_MESSAGENING_MESSAGENING_MESSAGE
Um diálogo que adverte o usuário de um problema potencial.
QUESTION_MESSAGEQUESTION_MESSAGEQUESTION_MESSAGEQUESTION_MESSAGE
Um diálogo que impõe uma pergunta ao usuário. Normalmente, esse diálogo exige uma resposta, como clicar em um botão YesYesYesYes ou NoNoNoNo.
PLAIN_MESSAGEPLAIN_MESSAGEPLAIN_MESSAGEPLAIN_MESSAGE Nenhum ícone
Um diálogo que contém uma mensagem, mas nenhum ícone..
Introdução à Tecnologia Java – 02/2012
Visão geral de componentes Swing
• Componentes Swing GUI:•Declarado no pacote javax.swing.
•A maioria dos componentes Swing sãocomponentes Java puros — escritos, manipuladose exibidos em Java.
•Fazem parte das Java Foundation Classes (JFC)— bibliotecas do Java para desenvolvimento deGUI para múltiplas plataformas.
Celso Olivete Júnior 24
Introdução à Tecnologia Java – 02/2012
Alguns componentes GUI básicos
Componente Descrição JLabelJLabelJLabelJLabel Exibe texto não-editável ou ícones.
JTextFieldJTextFieldJTextFieldJTextField Permite ao usuário inserir dados do teclado. Também pode ser utilizado para exibir texto editável ou não editável.
JButtonJButtonJButtonJButton Desencadeia um evento quando o usuário clicar nele com o mouse.
JCheckBoxJCheckBoxJCheckBoxJCheckBox Especifica uma opção que pode ser ou não selecionada.
Celso Olivete Júnior 25
JCheckBoxJCheckBoxJCheckBoxJCheckBox Especifica uma opção que pode ser ou não selecionada.
JComboBoxJComboBoxJComboBoxJComboBox Fornece uma lista drop-down de itens a partir da qual o usuário pode fazer uma seleção clicando em um item ou possivelmente digitando na caixa.
JListJListJListJList Fornece uma lista de itens a partir da qual o usuário pode fazer uma seleção clicando em qualquer item na lista. Múltiplos elementos podem ser selecionados.
JPanelJPanelJPanelJPanel Fornece uma área em que os componentes podem ser colocados e organizados. Também pode ser utilizado como uma área de desenho para imagens gráficas.
Introdução à Tecnologia Java – 02/2012
Swing versus AWT
• Abstract Window Toolkit (AWT):
•Precursor do Swing.
•Declarado no pacote java.awt.•Declarado no pacote java.awt.
•Não fornece aparência e comportamento
consistentes para diversas plataformas.
Celso Olivete Júnior 26
Introdução à Tecnologia Java – 02/2012
Dica de portabilidade
•Os componentes Swing são implementados no
Java; desse modo, eles são mais portáveis e
flexíveis do que os componentes Java GUI
originais de pacotes java.awt, que foram
baseados nos componentes GUI da plataforma
subjacente. Por essa razão, os componentes
Swing GUI geralmente são preferidos.
Celso Olivete Júnior 27
Introdução à Tecnologia Java – 02/2012
Componentes GUI leves versus pesados
• Componentes leves:
•Não associados diretamente a componentes
GUI suportados pela plataforma subjacente.
•Componentes pesados:
•Associados diretamente à plataforma local.
•Componentes AWT.
•Alguns componentes Swing.Celso Olivete Júnior 28
Introdução à Tecnologia Java – 02/2012
Superclasses de componentes GUI leves do Swing
•Classe Component (pacote java.awt):•Subclasse de Object.
•Declara muitos comportamentos e atributos comuns acomponentes GUI.
•Classe Container (pacote java.awt):•Classe Container (pacote java.awt):•Subclasse de Component.
•Organiza Components.
•Classe JComponent (pacote javax.swing):•Subclasse de Container.
•Superclasse de todos os componentes Swing leves.Celso Olivete Júnior 29
Introdução à Tecnologia Java – 02/2012
Superclasses comuns de muitos dos
componentes do Swing
Celso Olivete Júnior 30
Introdução à Tecnologia Java – 02/2012
Superclasses de componentes GUI leves do Swing
•Recursos dos componentes leves comuns:
•Aparência e comportamento plugáveis para personalizara aparência dos componentes.
•Teclas de atalho.
•Capacidades comuns de tratamento de eventos.
•Breves descrições do propósito de um componente GUI(chamadas dicas de ferramenta).
•Suporte para localização de interface com o usuário.
Celso Olivete Júnior 31
Introdução à Tecnologia Java – 02/2012
Exibição de texto e imagens em uma janela
• Classe JFrame:
•A maioria das janelas é uma instância ou
subclasse dessa classe.
•Fornece a barra de título.
•Fornece botões para
minimizar, maximizar
e fechar a aplicação.Celso Olivete Júnior 32
Introdução à Tecnologia Java – 02/2012
Rotulando componentes GUI
•Rótulo:
•Instruções de texto ou informações que declaram o
propósito de cada componente.
•Criadas com a classe JLabel.•Criadas com a classe JLabel.
Celso Olivete Júnior 33
Introdução à Tecnologia Java – 02/2012
Especificando o layout
•Organização dos contêineres:
•Determina onde os componentes são colocados
no contêiner.
•Feita no Java com gerenciadores de layout.
•Um dos quais é a classe FlowLayout.
•Configure com o método setLayout da classe
Jframe.
Celso Olivete Júnior 34
Introdução à Tecnologia Java – 02/2012
Resumo 1 // Fig. 11.6: LabelFrame.java// Fig. 11.6: LabelFrame.java// Fig. 11.6: LabelFrame.java// Fig. 11.6: LabelFrame.java
2 // // // // Demonstrando a classe JLabelDemonstrando a classe JLabelDemonstrando a classe JLabelDemonstrando a classe JLabel....
3 importimportimportimport java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout; // // // // especifica como os componentes são organizadosespecifica como os componentes são organizadosespecifica como os componentes são organizadosespecifica como os componentes são organizados
4 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; // // // // fornece recursos básicos de janelafornece recursos básicos de janelafornece recursos básicos de janelafornece recursos básicos de janela
5 importimportimportimport javax.swing.JLabel; javax.swing.JLabel; javax.swing.JLabel; javax.swing.JLabel; // // // // eeeexibe texto e imagensxibe texto e imagensxibe texto e imagensxibe texto e imagens
6 importimportimportimport javax.swing.SwingConstants; javax.swing.SwingConstants; javax.swing.SwingConstants; javax.swing.SwingConstants; // // // // constantes comuns utilizadas com Swingconstantes comuns utilizadas com Swingconstantes comuns utilizadas com Swingconstantes comuns utilizadas com Swing
7 importimportimportimport javax.swing.Icon; javax.swing.Icon; javax.swing.Icon; javax.swing.Icon; // // // // interface utilizada para manipular imagensinterface utilizada para manipular imagensinterface utilizada para manipular imagensinterface utilizada para manipular imagens
8 importimportimportimport javax.swing.ImageIcon; javax.swing.ImageIcon; javax.swing.ImageIcon; javax.swing.ImageIcon; // // // // carregacarregacarregacarrega image image image imagennnnssss
9
10 publicpublicpublicpublic classclassclassclass Lab Lab Lab LabelFrame elFrame elFrame elFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
Celso Olivete Júnior 35
10 publicpublicpublicpublic classclassclassclass Lab Lab Lab LabelFrame elFrame elFrame elFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
11 {{{{
12 privateprivateprivateprivate JLabel label1; JLabel label1; JLabel label1; JLabel label1; // JLabel // JLabel // JLabel // JLabel apenas com textoapenas com textoapenas com textoapenas com texto
13 privateprivateprivateprivate JLabel label2; JLabel label2; JLabel label2; JLabel label2; // JLabel // JLabel // JLabel // JLabel construído com texto e íconeconstruído com texto e íconeconstruído com texto e íconeconstruído com texto e ícone
14 privateprivateprivateprivate JLabel label3; JLabel label3; JLabel label3; JLabel label3; // JLabel // JLabel // JLabel // JLabel com texto e ícone adicionadoscom texto e ícone adicionadoscom texto e ícone adicionadoscom texto e ícone adicionados
15
16 // // // // Construtor LConstrutor LConstrutor LConstrutor LabelFrame abelFrame abelFrame abelFrame adicionaadicionaadicionaadiciona JLabels JLabels JLabels JLabels aaaa JFrame JFrame JFrame JFrame
17 publicpublicpublicpublic LabelFrame() LabelFrame() LabelFrame() LabelFrame()
18 { { { {
19 supersupersupersuper( ( ( ( "Testing JLabel""Testing JLabel""Testing JLabel""Testing JLabel" ); ); ); );
20 setLayout( setLayout( setLayout( setLayout( newnewnewnew FlowLayout() ); FlowLayout() ); FlowLayout() ); FlowLayout() ); // // // // configura o layout de frameconfigura o layout de frameconfigura o layout de frameconfigura o layout de frame
21
22 // // // // Construtor JLabel com um arConstrutor JLabel com um arConstrutor JLabel com um arConstrutor JLabel com um argumento de stringgumento de stringgumento de stringgumento de string
23 label1 = label1 = label1 = label1 = newnewnewnew JLabel( JLabel( JLabel( JLabel( "Label with text""Label with text""Label with text""Label with text" ); ); ); );
24 label1.setToolTipText( label1.setToolTipText( label1.setToolTipText( label1.setToolTipText( "This is label1""This is label1""This is label1""This is label1" ); ); ); );
25 add( label1 ); add( label1 ); add( label1 ); add( label1 ); // // // // adicionaadicionaadicionaadiciona label1 label1 label1 label1 aaaa JFrame JFrame JFrame JFrame
26
Introdução à Tecnologia Java – 02/2012
Resumo27 // // // // construtor JLabel com string, Icon e argumentos de alinhamentoconstrutor JLabel com string, Icon e argumentos de alinhamentoconstrutor JLabel com string, Icon e argumentos de alinhamentoconstrutor JLabel com string, Icon e argumentos de alinhamento
28 Icon bug = Icon bug = Icon bug = Icon bug = newnewnewnew ImageIcon( getClass().getResource( ImageIcon( getClass().getResource( ImageIcon( getClass().getResource( ImageIcon( getClass().getResource( "bug1.gif""bug1.gif""bug1.gif""bug1.gif" ) ); ) ); ) ); ) );
29 label2 = label2 = label2 = label2 = newnewnewnew JLabel( JLabel( JLabel( JLabel( "Label with text and icon""Label with text and icon""Label with text and icon""Label with text and icon", bug, , bug, , bug, , bug,
30 SwingConsSwingConsSwingConsSwingConstants.LEFTtants.LEFTtants.LEFTtants.LEFT ); ); ); );
31 label2.setToolTipText( label2.setToolTipText( label2.setToolTipText( label2.setToolTipText( "This is label2""This is label2""This is label2""This is label2" ); ); ); );
32 add( label2 ); add( label2 ); add( label2 ); add( label2 ); // ad// ad// ad// adiiiicionacionacionaciona label2 label2 label2 label2 aaaa JFrame JFrame JFrame JFrame
33
34 label3 = label3 = label3 = label3 = newnewnewnew JLabel(); JLabel(); JLabel(); JLabel(); // // // // construtor construtor construtor construtor JLabel JLabel JLabel JLabel sem argumentossem argumentossem argumentossem argumentos
35 label3.setText( label3.setText( label3.setText( label3.setText( "Label with icon and text at bottom""Label with icon and text at bottom""Label with icon and text at bottom""Label with icon and text at bottom" ); ); ); );
36 label3.setIcon( bug ); label3.setIcon( bug ); label3.setIcon( bug ); label3.setIcon( bug ); // ad// ad// ad// adiciona iciona iciona iciona ícone aícone aícone aícone a JLabel JLabel JLabel JLabel
Celso Olivete Júnior 36
36 label3.setIcon( bug ); label3.setIcon( bug ); label3.setIcon( bug ); label3.setIcon( bug ); // ad// ad// ad// adiciona iciona iciona iciona ícone aícone aícone aícone a JLabel JLabel JLabel JLabel
37 label3.setHorizontalTextPosition( label3.setHorizontalTextPosition( label3.setHorizontalTextPosition( label3.setHorizontalTextPosition( SwingConstants.CENTERSwingConstants.CENTERSwingConstants.CENTERSwingConstants.CENTER ); ); ); );
38 label3.setVerticalTextPosition( label3.setVerticalTextPosition( label3.setVerticalTextPosition( label3.setVerticalTextPosition( SwingConstants.BOTTOMSwingConstants.BOTTOMSwingConstants.BOTTOMSwingConstants.BOTTOM ); ); ); );
39 label3.setToolTipText( label3.setToolTipText( label3.setToolTipText( label3.setToolTipText( "This is label3""This is label3""This is label3""This is label3" ); ); ); );
40 add( label3 ); add( label3 ); add( label3 ); add( label3 ); // ad// ad// ad// adiiiicionacionacionaciona label3 label3 label3 label3 aaaa JFrame JFrame JFrame JFrame
41 } } } } // // // // ffffim do construtor im do construtor im do construtor im do construtor LabelFrameLabelFrameLabelFrameLabelFrame
42 } } } } // // // // ffffim da im da im da im da cccclasslasslasslasseeee LabelFrame LabelFrame LabelFrame LabelFrame
Introdução à Tecnologia Java – 02/2012
Resumo 1 // Fig. 11.7: LabelTest.java// Fig. 11.7: LabelTest.java// Fig. 11.7: LabelTest.java// Fig. 11.7: LabelTest.java
2 // Test// Test// Test// Testandoandoandoando LabelFrame. LabelFrame. LabelFrame. LabelFrame.
3 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
4
5 publicpublicpublicpublic classclassclassclass LabelTest LabelTest LabelTest LabelTest
6 {{{{
7 publicpublicpublicpublic staticstaticstaticstatic voidvoidvoidvoid main( String args[] ) main( String args[] ) main( String args[] ) main( String args[] )
8 { { { {
9 LabelFrame labelFrame = LabelFrame labelFrame = LabelFrame labelFrame = LabelFrame labelFrame = newnewnewnew LabelFrame(); LabelFrame(); LabelFrame(); LabelFrame(); // cr// cr// cr// criaiaiaia LabelFram LabelFram LabelFram LabelFrameeee
Celso Olivete Júnior 37
9 LabelFrame labelFrame = LabelFrame labelFrame = LabelFrame labelFrame = LabelFrame labelFrame = newnewnewnew LabelFrame(); LabelFrame(); LabelFrame(); LabelFrame(); // cr// cr// cr// criaiaiaia LabelFram LabelFram LabelFram LabelFrameeee
10 labelFrame.setDefaultCloseOperation( labelFrame.setDefaultCloseOperation( labelFrame.setDefaultCloseOperation( labelFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSE ); ); ); );
11 labelFrame.setSize( labelFrame.setSize( labelFrame.setSize( labelFrame.setSize( 275275275275, , , , 180180180180 ); ); ); ); // // // // configura tamanho doconfigura tamanho doconfigura tamanho doconfigura tamanho do frame frame frame frame
12 labelFrame.setVisible( labelFrame.setVisible( labelFrame.setVisible( labelFrame.setVisible( truetruetruetrue ); ); ); ); // // // // exibe exibe exibe exibe frameframeframeframe
13 } } } } // // // // fim de fim de fim de fim de mainmainmainmain
14 } } } } // // // // fim da classe fim da classe fim da classe fim da classe LabLabLabLabelTestelTestelTestelTest
Introdução à Tecnologia Java – 02/2012
Criando e anexando label1
•Método setToolTipText da classe
Jcomponent:
•Especifica a dica de ferramenta.•Especifica a dica de ferramenta.
•Método add da classe Container:
•Adiciona um componente a um contêiner.
Celso Olivete Júnior 38
27 // // // // construtor JLabel com string, Icon e argumentos de alinhamentoconstrutor JLabel com string, Icon e argumentos de alinhamentoconstrutor JLabel com string, Icon e argumentos de alinhamentoconstrutor JLabel com string, Icon e argumentos de alinhamento
28 Icon bug = Icon bug = Icon bug = Icon bug = newnewnewnew ImageIcon( getClass().getResource( ImageIcon( getClass().getResource( ImageIcon( getClass().getResource( ImageIcon( getClass().getResource( "bug1.gif""bug1.gif""bug1.gif""bug1.gif" ) ); ) ); ) ); ) );
29 label2 = label2 = label2 = label2 = newnewnewnew JLabel( JLabel( JLabel( JLabel( "Label with text and icon""Label with text and icon""Label with text and icon""Label with text and icon", bug, , bug, , bug, , bug,
30 SwingConsSwingConsSwingConsSwingConstants.LEFTtants.LEFTtants.LEFTtants.LEFT ); ); ); );
31 label2.setToolTipText( label2.setToolTipText( label2.setToolTipText( label2.setToolTipText( "This is label2""This is label2""This is label2""This is label2" ); ); ); );
32 add( label2 ); add( label2 ); add( label2 ); add( label2 ); // ad// ad// ad// adiiiicionacionacionaciona label2 label2 label2 label2 aaaa JFrame JFrame JFrame JFrame
33 34 label3 = label3 = label3 = label3 = newnewnewnew JLabel(); JLabel(); JLabel(); JLabel(); // // // // construtor construtor construtor construtor JLabel JLabel JLabel JLabel sem argumentossem argumentossem argumentossem argumentos
35
Introdução à Tecnologia Java – 02/2012
Cuidado!!!
•Se você não adicionar explicitamente um
componente GUI a um contêiner, o
componente GUI não será exibido quando ocomponente GUI não será exibido quando o
contêiner aparecer na tela.
Celso Olivete Júnior 39
Introdução à Tecnologia Java – 02/2012
Criando e anexando label2
•Interface Icon:
•Pode ser adicionado a uma JLabel com o método setIcon.
•Implementado pela classe ImageIcon.
•Interface SwingConstants:•Interface SwingConstants:
•Declara um conjunto de constantes inteiras comuns, como as
utilizadas para configurar o alinhamento dos componentes.
•Pode ser utilizada com os métodos setHorizontalAlignment e
setVerticalAlignment.
Celso Olivete Júnior 40
label1.setHorizontalTextPosition(SwingConstants.CEN TER);Icon brinquedo = new ImageIcon("imagens/brinquedo.gif "); JLabel label2 = new JLabel("Centralizado - Imagem", br inquedo,
SwingConstants.CENTER);
Introdução à Tecnologia Java – 02/2012
Criando e anexando label3
•Outros métodos Jlabel:•getText e setText
•Para configurar e recuperar o texto de um rótulo.
•getIcon e setIcon•getIcon e setIcon•Para configurar e recuperar o ícone exibido no rótulo.
•getHorizontalTextPosition esetHorizontalTextPosition
•Para configurar e recuperar a posição horizontal do textoexibido no rótulo.
Celso Olivete Júnior 41
Introdução à Tecnologia Java – 02/2012
Alguns componentes GUI básicos
Constante
Descrição
Constantes de posição horizontal
SwingConstants.LEFTSwingConstants.LEFTSwingConstants.LEFTSwingConstants.LEFT Coloca o texto à esquerda.
Celso Olivete Júnior 42
SwingConstants.CENTERSwingConstants.CENTERSwingConstants.CENTERSwingConstants.CENTER Coloca o texto no centro. SwingConstants.RIGHTSwingConstants.RIGHTSwingConstants.RIGHTSwingConstants.RIGHT Coloca o texto à direita.
Constantes de posição vertical SwingConstants.TOPSwingConstants.TOPSwingConstants.TOPSwingConstants.TOP Coloca o texto na parte superior. SwingConstants.CENTERSwingConstants.CENTERSwingConstants.CENTERSwingConstants.CENTER Coloca o texto no centro. SwingConstants.BOTTOMSwingConstants.BOTTOMSwingConstants.BOTTOMSwingConstants.BOTTOM Coloca o texto na parte inferior.
Introdução à Tecnologia Java – 02/2012
Criando e exibindo uma janela LabelFrame
• Outros métodos JFrame:•setDefaultCloseOperation
•Determina como a aplicação reage quando o usuário clicano botão de fechar.
//configurar fechamento automático
•setSize•Especifica a largura e altura da janela.
•setVisible•Determina se a janela é exibida (true) ou não (false).
Celso Olivete Júnior 43
//configurar fechamento automáticoframe.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
Introdução à Tecnologia Java – 02/2012
Texto e uma introdução ao tratamento deeventos com classes aninhadas
•GUIs são baseadas em evento:•Uma interação com o usuário cria um evento.
•Eventos comuns são clicar em um botão, digitar emum campo de texto, selecionar um item em um menu,fechar uma janela e mover o mouse.
•O evento causa uma chamada a um método quechamou um handler de evento.
Celso Olivete Júnior 44
Introdução à Tecnologia Java – 02/2012
Texto e uma introdução ao tratamento de
eventos com classes aninhadas
•Classe JTextComponent:
•Superclasse de JTextField.
•Superclasse de JPasswordField.
•Adiciona o caractere de eco para ocultar a entrada de texto
no componente.
•Permite que o usuário insira texto no componente
quando o componente tem o foco da aplicação.
Celso Olivete Júnior 45
Introdução à Tecnologia Java – 02/2012
Exemplo 1 // Fig. 11.9: TextFieldFrame.java// Fig. 11.9: TextFieldFrame.java// Fig. 11.9: TextFieldFrame.java// Fig. 11.9: TextFieldFrame.java
2 // Demonstra// Demonstra// Demonstra// Demonstrando a classendo a classendo a classendo a classe JTextField. JTextField. JTextField. JTextField.
3 importimportimportimport java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout;
4 importimportimportimport java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener;
5 importimportimportimport java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent;
6 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
7 importimportimportimport javax.swing.JTextField; javax.swing.JTextField; javax.swing.JTextField; javax.swing.JTextField;
8 importimportimportimport javax.swing.JPasswordField; javax.swing.JPasswordField; javax.swing.JPasswordField; javax.swing.JPasswordField;
9 importimportimportimport javax.swing.JOptionPane; javax.swing.JOptionPane; javax.swing.JOptionPane; javax.swing.JOptionPane;
10
Celso Olivete Júnior 46
11 publicpublicpublicpublic classclassclassclass TextFieldFrame TextFieldFrame TextFieldFrame TextFieldFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
12 {{{{
13 privateprivateprivateprivate JTextField textField1; JTextField textField1; JTextField textField1; JTextField textField1; // // // // campo de texto com tamanho configuradocampo de texto com tamanho configuradocampo de texto com tamanho configuradocampo de texto com tamanho configurado
14 privateprivateprivateprivate JTextField textField2 JTextField textField2 JTextField textField2 JTextField textField2; ; ; ; // // // // campo de texto construído com textocampo de texto construído com textocampo de texto construído com textocampo de texto construído com texto
15 privateprivateprivateprivate JTextField textField3; JTextField textField3; JTextField textField3; JTextField textField3; // // // // campo de texto com texto e tamanhocampo de texto com texto e tamanhocampo de texto com texto e tamanhocampo de texto com texto e tamanho
16 privateprivateprivateprivate JPasswordField passwordField; JPasswordField passwordField; JPasswordField passwordField; JPasswordField passwordField; // // // // campo de senha com textocampo de senha com textocampo de senha com textocampo de senha com texto
17
18 // // // // Construtor Construtor Construtor Construtor TextFieldFrame TextFieldFrame TextFieldFrame TextFieldFrame adicionaadicionaadicionaadiciona JTextFields JTextFields JTextFields JTextFields aaaa JFrame JFrame JFrame JFrame
19 publicpublicpublicpublic TextFieldFrame() TextFieldFrame() TextFieldFrame() TextFieldFrame()
20 { { { {
21 supersupersupersuper( ( ( ( "Testing JTextField and JPasswordField""Testing JTextField and JPasswordField""Testing JTextField and JPasswordField""Testing JTextField and JPasswordField" ); ); ); );
22 setLayout( setLayout( setLayout( setLayout( newnewnewnew FlowLayout() ); FlowLayout() ); FlowLayout() ); FlowLayout() ); // // // // configuraconfiguraconfiguraconfigura layout layout layout layout de frame de frame de frame de frame
23
24 // // // // constrói textfield com 10 colunasconstrói textfield com 10 colunasconstrói textfield com 10 colunasconstrói textfield com 10 colunas
25 textFieltextFieltextFieltextField1 = d1 = d1 = d1 = newnewnewnew JTextField( JTextField( JTextField( JTextField( 10101010 ); ); ); );
26 add( textField1 ); add( textField1 ); add( textField1 ); add( textField1 ); // ad// ad// ad// adicionaicionaicionaiciona textField1 textField1 textField1 textField1 aaaa JFrame JFrame JFrame JFrame
27
Cria um novo JTextField
Introdução à Tecnologia Java – 02/2012
Tipos de eventosComponentes
afetados“Listener” addxxxListener
Métodos do Listener
ButtonTextFieldMenuItem
ActionListener .addActionListener() actionPerformed(ActionEvent e)
ListComboBox
ItemListener .addItemListener() stateChanged(ChangeEvent e)
Celso Olivete Júnior 47
ComboBox (ChangeEvent e)
key oncomponent
KeyListener .addKeyListener() keyPressed(), keyReleased(),
keyTyped()
mouse oncomponent
MouseListener .addMouseListener() mouseClicked(), mouseEntered(), mouseExited(),
mousePressed(), mouseReleased()
mouse oncomponent
MouseMotionListener .addMouseMotionListener() mouseMoved(), mouseDragged()
Frame WindowListener .addWindowListener() windowClosing(WindowEvent e), ...
Introdução à Tecnologia Java – 02/2012
Exemplo
28 // // // // constrói campo de texto com texto padrãoconstrói campo de texto com texto padrãoconstrói campo de texto com texto padrãoconstrói campo de texto com texto padrão
29 textField2 = textField2 = textField2 = textField2 = newnewnewnew JTextField( JTextField( JTextField( JTextField( "Enter text here""Enter text here""Enter text here""Enter text here" ); ); ); );
30 add( textField2 ); add( textField2 ); add( textField2 ); add( textField2 ); // ad// ad// ad// adicionaicionaicionaiciona textField2 textField2 textField2 textField2 aaaa JFrame JFrame JFrame JFrame
31
32 // constr// constr// constr// constróióióiói textfield textfield textfield textfield com texto padrãocom texto padrãocom texto padrãocom texto padrão eeee 21 colun 21 colun 21 colun 21 colunaaaassss
33 textField3 = textField3 = textField3 = textField3 = newnewnewnew JTextField( JTextField( JTextField( JTextField( "Uneditable text field""Uneditable text field""Uneditable text field""Uneditable text field", , , , 21212121 ); ); ); );
34 textField3.setEditable( textField3.setEditable( textField3.setEditable( textField3.setEditable( falsefalsefalsefalse ); ); ); ); // // // // desativa a ediçãodesativa a ediçãodesativa a ediçãodesativa a edição
35 add( textField3 ); add( textField3 ); add( textField3 ); add( textField3 ); // ad// ad// ad// adicionaicionaicionaiciona textField3 textField3 textField3 textField3 aoaoaoao JFrame JFrame JFrame JFrame
36
Cria um novo JTextField
Celso Olivete Júnior 48
36
37 // // // // constrói passwordfield comconstrói passwordfield comconstrói passwordfield comconstrói passwordfield com o texto padrão o texto padrão o texto padrão o texto padrão
38 passwordField = passwordField = passwordField = passwordField = newnewnewnew JPasswordField( JPasswordField( JPasswordField( JPasswordField( "Hidden text""Hidden text""Hidden text""Hidden text" ); ); ); );
39 add( passwordField ); add( passwordField ); add( passwordField ); add( passwordField ); // ad// ad// ad// adicionaicionaicionaiciona passwordField passwordField passwordField passwordField aaaa JFrame JFrame JFrame JFrame
40
41 // // // // registra handlers de evento registra handlers de evento registra handlers de evento registra handlers de evento
42 TextFieldHandler handler = TextFieldHandler handler = TextFieldHandler handler = TextFieldHandler handler = newnewnewnew TextFieldHandler( TextFieldHandler( TextFieldHandler( TextFieldHandler(););););
43 textField1.addActionListener( handler );textField1.addActionListener( handler );textField1.addActionListener( handler );textField1.addActionListener( handler );
44 textField2.addActionListener( handler );textField2.addActionListener( handler );textField2.addActionListener( handler );textField2.addActionListener( handler );
45 textField3.addActionListener( handler );textField3.addActionListener( handler );textField3.addActionListener( handler );textField3.addActionListener( handler );
46 passwordField.addActionListener( handler );passwordField.addActionListener( handler );passwordField.addActionListener( handler );passwordField.addActionListener( handler );
47 } } } } // // // // fim do construtorfim do construtorfim do construtorfim do construtor TextFieldFrame TextFieldFrame TextFieldFrame TextFieldFrame
48
Introdução à Tecnologia Java – 02/2012
Exemplo
28 // // // // constrói campo de texto com texto padrãoconstrói campo de texto com texto padrãoconstrói campo de texto com texto padrãoconstrói campo de texto com texto padrão
29 textField2 = textField2 = textField2 = textField2 = newnewnewnew JTextField( JTextField( JTextField( JTextField( "Enter text here""Enter text here""Enter text here""Enter text here" ); ); ); );
30 add( textField2 ); add( textField2 ); add( textField2 ); add( textField2 ); // ad// ad// ad// adicionaicionaicionaiciona textField2 textField2 textField2 textField2 aaaa JFrame JFrame JFrame JFrame
31
32 // constr// constr// constr// constróióióiói textfield textfield textfield textfield com texto padrãocom texto padrãocom texto padrãocom texto padrão eeee 21 colun 21 colun 21 colun 21 colunaaaassss
33 textField3 = textField3 = textField3 = textField3 = newnewnewnew JTextField( JTextField( JTextField( JTextField( "Uneditable text field""Uneditable text field""Uneditable text field""Uneditable text field", , , , 21212121 ); ); ); );
34 textField3.setEditable( textField3.setEditable( textField3.setEditable( textField3.setEditable( falsefalsefalsefalse ); ); ); ); // // // // desativa a ediçãodesativa a ediçãodesativa a ediçãodesativa a edição
35 add( textField3 ); add( textField3 ); add( textField3 ); add( textField3 ); // ad// ad// ad// adicionaicionaicionaiciona textField3 textField3 textField3 textField3 aoaoaoao JFrame JFrame JFrame JFrame
36
Cria um novo JTextField
Cria um novo JTextField não
Celso Olivete Júnior 49
36
37 // // // // constrói passwordfield comconstrói passwordfield comconstrói passwordfield comconstrói passwordfield com o texto padrão o texto padrão o texto padrão o texto padrão
38 passwordField = passwordField = passwordField = passwordField = newnewnewnew JPasswordField( JPasswordField( JPasswordField( JPasswordField( "Hidden text""Hidden text""Hidden text""Hidden text" ); ); ); );
39 add( passwordField ); add( passwordField ); add( passwordField ); add( passwordField ); // ad// ad// ad// adicionaicionaicionaiciona passwordField passwordField passwordField passwordField aaaa JFrame JFrame JFrame JFrame
40
41 // // // // registra handlers de evento registra handlers de evento registra handlers de evento registra handlers de evento
42 TextFieldHandler handler = TextFieldHandler handler = TextFieldHandler handler = TextFieldHandler handler = newnewnewnew TextFieldHandler( TextFieldHandler( TextFieldHandler( TextFieldHandler(););););
43 textField1.addActionListener( handler );textField1.addActionListener( handler );textField1.addActionListener( handler );textField1.addActionListener( handler );
44 textField2.addActionListener( handler );textField2.addActionListener( handler );textField2.addActionListener( handler );textField2.addActionListener( handler );
45 textField3.addActionListener( handler );textField3.addActionListener( handler );textField3.addActionListener( handler );textField3.addActionListener( handler );
46 passwordField.addActionListener( handler );passwordField.addActionListener( handler );passwordField.addActionListener( handler );passwordField.addActionListener( handler );
47 } } } } // // // // fim do construtorfim do construtorfim do construtorfim do construtor TextFieldFrame TextFieldFrame TextFieldFrame TextFieldFrame
48
Cria um novo JTextField não
editável
Introdução à Tecnologia Java – 02/2012
Exemplo
28 // // // // constrói campo de texto com texto padrãoconstrói campo de texto com texto padrãoconstrói campo de texto com texto padrãoconstrói campo de texto com texto padrão
29 textField2 = textField2 = textField2 = textField2 = newnewnewnew JTextField( JTextField( JTextField( JTextField( "Enter text here""Enter text here""Enter text here""Enter text here" ); ); ); );
30 add( textField2 ); add( textField2 ); add( textField2 ); add( textField2 ); // ad// ad// ad// adicionaicionaicionaiciona textField2 textField2 textField2 textField2 aaaa JFrame JFrame JFrame JFrame
31
32 // constr// constr// constr// constróióióiói textfield textfield textfield textfield com texto padrãocom texto padrãocom texto padrãocom texto padrão eeee 21 colun 21 colun 21 colun 21 colunaaaassss
33 textField3 = textField3 = textField3 = textField3 = newnewnewnew JTextField( JTextField( JTextField( JTextField( "Uneditable text field""Uneditable text field""Uneditable text field""Uneditable text field", , , , 21212121 ); ); ); );
34 textField3.setEditable( textField3.setEditable( textField3.setEditable( textField3.setEditable( falsefalsefalsefalse ); ); ); ); // // // // desativa a ediçãodesativa a ediçãodesativa a ediçãodesativa a edição
35 add( textField3 ); add( textField3 ); add( textField3 ); add( textField3 ); // ad// ad// ad// adicionaicionaicionaiciona textField3 textField3 textField3 textField3 aoaoaoao JFrame JFrame JFrame JFrame
36
Cria um novo JTextField
Cria um novo JTextField não
Celso Olivete Júnior 50
36
37 // // // // constrói passwordfield comconstrói passwordfield comconstrói passwordfield comconstrói passwordfield com o texto padrão o texto padrão o texto padrão o texto padrão
38 passwordField = passwordField = passwordField = passwordField = newnewnewnew JPasswordField( JPasswordField( JPasswordField( JPasswordField( "Hidden text""Hidden text""Hidden text""Hidden text" ); ); ); );
39 add( passwordField ); add( passwordField ); add( passwordField ); add( passwordField ); // ad// ad// ad// adicionaicionaicionaiciona passwordField passwordField passwordField passwordField aaaa JFrame JFrame JFrame JFrame
40
41 // // // // registra handlers de evento registra handlers de evento registra handlers de evento registra handlers de evento
42 TextFieldHandler handler = TextFieldHandler handler = TextFieldHandler handler = TextFieldHandler handler = newnewnewnew TextFieldHandler( TextFieldHandler( TextFieldHandler( TextFieldHandler(););););
43 textField1.addActionListener( handler );textField1.addActionListener( handler );textField1.addActionListener( handler );textField1.addActionListener( handler );
44 textField2.addActionListener( handler );textField2.addActionListener( handler );textField2.addActionListener( handler );textField2.addActionListener( handler );
45 textField3.addActionListener( handler );textField3.addActionListener( handler );textField3.addActionListener( handler );textField3.addActionListener( handler );
46 passwordField.addActionListener( handler );passwordField.addActionListener( handler );passwordField.addActionListener( handler );passwordField.addActionListener( handler );
47 } } } } // // // // fim do construtorfim do construtorfim do construtorfim do construtor TextFieldFrame TextFieldFrame TextFieldFrame TextFieldFrame
48
Cria um novo JTextField não
editável
Cria um novo JPasswordField
Introdução à Tecnologia Java – 02/2012
Exemplo
28 // // // // constrói campo de texto com texto padrãoconstrói campo de texto com texto padrãoconstrói campo de texto com texto padrãoconstrói campo de texto com texto padrão
29 textField2 = textField2 = textField2 = textField2 = newnewnewnew JTextField( JTextField( JTextField( JTextField( "Enter text here""Enter text here""Enter text here""Enter text here" ); ); ); );
30 add( textField2 ); add( textField2 ); add( textField2 ); add( textField2 ); // ad// ad// ad// adicionaicionaicionaiciona textField2 textField2 textField2 textField2 aaaa JFrame JFrame JFrame JFrame
31
32 // constr// constr// constr// constróióióiói textfield textfield textfield textfield com texto padrãocom texto padrãocom texto padrãocom texto padrão eeee 21 colun 21 colun 21 colun 21 colunaaaassss
33 textField3 = textField3 = textField3 = textField3 = newnewnewnew JTextField( JTextField( JTextField( JTextField( "Uneditable text field""Uneditable text field""Uneditable text field""Uneditable text field", , , , 21212121 ); ); ); );
34 textField3.setEditable( textField3.setEditable( textField3.setEditable( textField3.setEditable( falsefalsefalsefalse ); ); ); ); // // // // desativa a ediçãodesativa a ediçãodesativa a ediçãodesativa a edição
35 add( textField3 ); add( textField3 ); add( textField3 ); add( textField3 ); // ad// ad// ad// adicionaicionaicionaiciona textField3 textField3 textField3 textField3 aoaoaoao JFrame JFrame JFrame JFrame
36
Cria um novo JTextField
Cria um novo JTextField não
Celso Olivete Júnior 51
36
37 // // // // constrói passwordfield comconstrói passwordfield comconstrói passwordfield comconstrói passwordfield com o texto padrão o texto padrão o texto padrão o texto padrão
38 passwordField = passwordField = passwordField = passwordField = newnewnewnew JPasswordField( JPasswordField( JPasswordField( JPasswordField( "Hidden text""Hidden text""Hidden text""Hidden text" ); ); ); );
39 add( passwordField ); add( passwordField ); add( passwordField ); add( passwordField ); // ad// ad// ad// adicionaicionaicionaiciona passwordField passwordField passwordField passwordField aaaa JFrame JFrame JFrame JFrame
40
41 // // // // registra handlers de evento registra handlers de evento registra handlers de evento registra handlers de evento
42 TextFieldHandler handler = TextFieldHandler handler = TextFieldHandler handler = TextFieldHandler handler = newnewnewnew TextFieldHandler( TextFieldHandler( TextFieldHandler( TextFieldHandler(););););
43 textField1.addActionListener( handler );textField1.addActionListener( handler );textField1.addActionListener( handler );textField1.addActionListener( handler );
44 textField2.addActionListener( handler );textField2.addActionListener( handler );textField2.addActionListener( handler );textField2.addActionListener( handler );
45 textField3.addActionListener( handler );textField3.addActionListener( handler );textField3.addActionListener( handler );textField3.addActionListener( handler );
46 passwordField.addActionListener( handler );passwordField.addActionListener( handler );passwordField.addActionListener( handler );passwordField.addActionListener( handler );
47 } } } } // // // // fim do construtorfim do construtorfim do construtorfim do construtor TextFieldFrame TextFieldFrame TextFieldFrame TextFieldFrame
48
Cria um novo JTextField não
editável
Cria um novo JPasswordField
Criar um handler de evento
Introdução à Tecnologia Java – 02/2012
Exemplo
28 // // // // constrói campo de texto com texto padrãoconstrói campo de texto com texto padrãoconstrói campo de texto com texto padrãoconstrói campo de texto com texto padrão
29 textField2 = textField2 = textField2 = textField2 = newnewnewnew JTextField( JTextField( JTextField( JTextField( "Enter text here""Enter text here""Enter text here""Enter text here" ); ); ); );
30 add( textField2 ); add( textField2 ); add( textField2 ); add( textField2 ); // ad// ad// ad// adicionaicionaicionaiciona textField2 textField2 textField2 textField2 aaaa JFrame JFrame JFrame JFrame
31
32 // constr// constr// constr// constróióióiói textfield textfield textfield textfield com texto padrãocom texto padrãocom texto padrãocom texto padrão eeee 21 colun 21 colun 21 colun 21 colunaaaassss
33 textField3 = textField3 = textField3 = textField3 = newnewnewnew JTextField( JTextField( JTextField( JTextField( "Uneditable text field""Uneditable text field""Uneditable text field""Uneditable text field", , , , 21212121 ); ); ); );
34 textField3.setEditable( textField3.setEditable( textField3.setEditable( textField3.setEditable( falsefalsefalsefalse ); ); ); ); // // // // desativa a ediçãodesativa a ediçãodesativa a ediçãodesativa a edição
35 add( textField3 ); add( textField3 ); add( textField3 ); add( textField3 ); // ad// ad// ad// adicionaicionaicionaiciona textField3 textField3 textField3 textField3 aoaoaoao JFrame JFrame JFrame JFrame
36
Cria um novo JTextField
Cria um novo JTextField não
Celso Olivete Júnior 52
36
37 // // // // constrói passwordfield comconstrói passwordfield comconstrói passwordfield comconstrói passwordfield com o texto padrão o texto padrão o texto padrão o texto padrão
38 passwordField = passwordField = passwordField = passwordField = newnewnewnew JPasswordField( JPasswordField( JPasswordField( JPasswordField( "Hidden text""Hidden text""Hidden text""Hidden text" ); ); ); );
39 add( passwordField ); add( passwordField ); add( passwordField ); add( passwordField ); // ad// ad// ad// adicionaicionaicionaiciona passwordField passwordField passwordField passwordField aaaa JFrame JFrame JFrame JFrame
40
41 // // // // registra handlers de evento registra handlers de evento registra handlers de evento registra handlers de evento
42 TextFieldHandler handler = TextFieldHandler handler = TextFieldHandler handler = TextFieldHandler handler = newnewnewnew TextFieldHandler( TextFieldHandler( TextFieldHandler( TextFieldHandler(););););
43 textField1.addActionListener( handler );textField1.addActionListener( handler );textField1.addActionListener( handler );textField1.addActionListener( handler );
44 textField2.addActionListener( handler );textField2.addActionListener( handler );textField2.addActionListener( handler );textField2.addActionListener( handler );
45 textField3.addActionListener( handler );textField3.addActionListener( handler );textField3.addActionListener( handler );textField3.addActionListener( handler );
46 passwordField.addActionListener( handler );passwordField.addActionListener( handler );passwordField.addActionListener( handler );passwordField.addActionListener( handler );
47 } } } } // // // // fim do construtorfim do construtorfim do construtorfim do construtor TextFieldFrame TextFieldFrame TextFieldFrame TextFieldFrame
48
Cria um novo JTextField não
editável
Cria um novo JPasswordField
Criar um handler de evento
Registra um handler de evento
Introdução à Tecnologia Java – 02/2012
Exemplo
47 } } } } // // // // fim do construtorfim do construtorfim do construtorfim do construtor TextFieldFrame TextFieldFrame TextFieldFrame TextFieldFrame
48
49 // // // // classe interna private para tratamento de eventoclasse interna private para tratamento de eventoclasse interna private para tratamento de eventoclasse interna private para tratamento de evento
50 privateprivateprivateprivate classclassclassclass TextFieldHandler TextFieldHandler TextFieldHandler TextFieldHandler implementsimplementsimplementsimplements ActionListener ActionListener ActionListener ActionListener
51 { { { {
52 // process // process // process // processaaaa eventos de campo de textoeventos de campo de textoeventos de campo de textoeventos de campo de texto
53 publicpublicpublicpublic voidvoidvoidvoid a a a actionPerformed( ActionEvent event )ctionPerformed( ActionEvent event )ctionPerformed( ActionEvent event )ctionPerformed( ActionEvent event )
Cria uma classe de handler de
evento implementando a interface
ActionListener
Celso Olivete Júnior 53
53 publicpublicpublicpublic voidvoidvoidvoid a a a actionPerformed( ActionEvent event )ctionPerformed( ActionEvent event )ctionPerformed( ActionEvent event )ctionPerformed( ActionEvent event )
54 { { { {
55 String string = String string = String string = String string = """"""""; ; ; ; // // // // declara string a ser exibidadeclara string a ser exibidadeclara string a ser exibidadeclara string a ser exibida
56
ActionListener
Declara o método
actionPerformed
Introdução à Tecnologia Java – 02/2012
Exemplo57 // // // // usuário pressionou Enter no JTextField textField1usuário pressionou Enter no JTextField textField1usuário pressionou Enter no JTextField textField1usuário pressionou Enter no JTextField textField1
58 ifififif ( ( ( ( event.getSource() == textField1event.getSource() == textField1event.getSource() == textField1event.getSource() == textField1 ) ) ) )
59 string = String.format( string = String.format( string = String.format( string = String.format( "textField1: %s""textField1: %s""textField1: %s""textField1: %s",,,,
60 event.getActionCommand()event.getActionCommand()event.getActionCommand()event.getActionCommand() ); ); ); );
61
62 // // // // usuáriousuáriousuáriousuário pressionou Enter no JTextField textField2 pressionou Enter no JTextField textField2 pressionou Enter no JTextField textField2 pressionou Enter no JTextField textField2
63 elseelseelseelse ifififif ( ( ( ( event.getSource() == textField2event.getSource() == textField2event.getSource() == textField2event.getSource() == textField2 ) ) ) )
64 string = String.format( string = String.format( string = String.format( string = String.format( "textField2: %s""textField2: %s""textField2: %s""textField2: %s",,,,
65 event.getActionCommand()event.getActionCommand()event.getActionCommand()event.getActionCommand() ); ); ); );
66
Testa se a origem do evento é o primeiro
campo de texto
Celso Olivete Júnior 54
66
67 // // // // usuário pressionou Enter usuário pressionou Enter usuário pressionou Enter usuário pressionou Enter no no no no JTextField textField3JTextField textField3JTextField textField3JTextField textField3
68 elseelseelseelse ifififif ( ( ( ( event.getSource() == textField3event.getSource() == textField3event.getSource() == textField3event.getSource() == textField3 ) ) ) )
69 string = String.format( string = String.format( string = String.format( string = String.format( "textField3: %s""textField3: %s""textField3: %s""textField3: %s", , , ,
70 event.getActionCommand()event.getActionCommand()event.getActionCommand()event.getActionCommand() ); ); ); );
71
72 // // // // usuário pressionou Enter no usuário pressionou Enter no usuário pressionou Enter no usuário pressionou Enter no JTextField pasJTextField pasJTextField pasJTextField passwordFieldswordFieldswordFieldswordField
73 elseelseelseelse ifififif ( ( ( ( event.getSource() == passwordFieldevent.getSource() == passwordFieldevent.getSource() == passwordFieldevent.getSource() == passwordField ) ) ) )
74 string = String.format( string = String.format( string = String.format( string = String.format( "passwordField: %s""passwordField: %s""passwordField: %s""passwordField: %s", , , ,
75 newnewnewnew String( String( String( String( passwordField.getPassword()passwordField.getPassword()passwordField.getPassword()passwordField.getPassword() ) ); ) ); ) ); ) );
76
77 // // // // exibe conteúdo do exibe conteúdo do exibe conteúdo do exibe conteúdo do JTextFieldJTextFieldJTextFieldJTextField
78 JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( nullnullnullnull, string ); , string ); , string ); , string );
79 } } } } // // // // fim do métodofim do métodofim do métodofim do método actionPerformed actionPerformed actionPerformed actionPerformed
80 } } } } // // // // fim da classefim da classefim da classefim da classe TextFieldHandler TextFieldHandler TextFieldHandler TextFieldHandler interna interna interna interna private private private private
81 } } } } // // // // fim da classe fim da classe fim da classe fim da classe TextFieldFrameTextFieldFrameTextFieldFrameTextFieldFrame
Introdução à Tecnologia Java – 02/2012
Exemplo57 // // // // usuário pressionou Enter no JTextField textField1usuário pressionou Enter no JTextField textField1usuário pressionou Enter no JTextField textField1usuário pressionou Enter no JTextField textField1
58 ifififif ( ( ( ( event.getSource() == textField1event.getSource() == textField1event.getSource() == textField1event.getSource() == textField1 ) ) ) )
59 string = String.format( string = String.format( string = String.format( string = String.format( "textField1: %s""textField1: %s""textField1: %s""textField1: %s",,,,
60 event.getActionCommand()event.getActionCommand()event.getActionCommand()event.getActionCommand() ); ); ); );
61
62 // // // // usuáriousuáriousuáriousuário pressionou Enter no JTextField textField2 pressionou Enter no JTextField textField2 pressionou Enter no JTextField textField2 pressionou Enter no JTextField textField2
63 elseelseelseelse ifififif ( ( ( ( event.getSource() == textField2event.getSource() == textField2event.getSource() == textField2event.getSource() == textField2 ) ) ) )
64 string = String.format( string = String.format( string = String.format( string = String.format( "textField2: %s""textField2: %s""textField2: %s""textField2: %s",,,,
65 event.getActionCommand()event.getActionCommand()event.getActionCommand()event.getActionCommand() ); ); ); );
66
Testa se a origem do evento é o primeiro
campo de texto
Obtém texto a partir do campo de texto
Celso Olivete Júnior 55
66
67 // // // // usuário pressionou Enter usuário pressionou Enter usuário pressionou Enter usuário pressionou Enter no no no no JTextField textField3JTextField textField3JTextField textField3JTextField textField3
68 elseelseelseelse ifififif ( ( ( ( event.getSource() == textField3event.getSource() == textField3event.getSource() == textField3event.getSource() == textField3 ) ) ) )
69 string = String.format( string = String.format( string = String.format( string = String.format( "textField3: %s""textField3: %s""textField3: %s""textField3: %s", , , ,
70 event.getActionCommand()event.getActionCommand()event.getActionCommand()event.getActionCommand() ); ); ); );
71
72 // // // // usuário pressionou Enter no usuário pressionou Enter no usuário pressionou Enter no usuário pressionou Enter no JTextField pasJTextField pasJTextField pasJTextField passwordFieldswordFieldswordFieldswordField
73 elseelseelseelse ifififif ( ( ( ( event.getSource() == passwordFieldevent.getSource() == passwordFieldevent.getSource() == passwordFieldevent.getSource() == passwordField ) ) ) )
74 string = String.format( string = String.format( string = String.format( string = String.format( "passwordField: %s""passwordField: %s""passwordField: %s""passwordField: %s", , , ,
75 newnewnewnew String( String( String( String( passwordField.getPassword()passwordField.getPassword()passwordField.getPassword()passwordField.getPassword() ) ); ) ); ) ); ) );
76
77 // // // // exibe conteúdo do exibe conteúdo do exibe conteúdo do exibe conteúdo do JTextFieldJTextFieldJTextFieldJTextField
78 JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( nullnullnullnull, string ); , string ); , string ); , string );
79 } } } } // // // // fim do métodofim do métodofim do métodofim do método actionPerformed actionPerformed actionPerformed actionPerformed
80 } } } } // // // // fim da classefim da classefim da classefim da classe TextFieldHandler TextFieldHandler TextFieldHandler TextFieldHandler interna interna interna interna private private private private
81 } } } } // // // // fim da classe fim da classe fim da classe fim da classe TextFieldFrameTextFieldFrameTextFieldFrameTextFieldFrame
Introdução à Tecnologia Java – 02/2012
Exemplo57 // // // // usuário pressionou Enter no JTextField textField1usuário pressionou Enter no JTextField textField1usuário pressionou Enter no JTextField textField1usuário pressionou Enter no JTextField textField1
58 ifififif ( ( ( ( event.getSource() == textField1event.getSource() == textField1event.getSource() == textField1event.getSource() == textField1 ) ) ) )
59 string = String.format( string = String.format( string = String.format( string = String.format( "textField1: %s""textField1: %s""textField1: %s""textField1: %s",,,,
60 event.getActionCommand()event.getActionCommand()event.getActionCommand()event.getActionCommand() ); ); ); );
61
62 // // // // usuáriousuáriousuáriousuário pressionou Enter no JTextField textField2 pressionou Enter no JTextField textField2 pressionou Enter no JTextField textField2 pressionou Enter no JTextField textField2
63 elseelseelseelse ifififif ( ( ( ( event.getSource() == textField2event.getSource() == textField2event.getSource() == textField2event.getSource() == textField2 ) ) ) )
64 string = String.format( string = String.format( string = String.format( string = String.format( "textField2: %s""textField2: %s""textField2: %s""textField2: %s",,,,
65 event.getActionCommand()event.getActionCommand()event.getActionCommand()event.getActionCommand() ); ); ); );
66
Testa se a origem do evento é o primeiro
campo de texto
Obtém texto a partir do campo de texto
Testa se a origem do evento é o segundo
campo de texto
Celso Olivete Júnior 56
66
67 // // // // usuário pressionou Enter usuário pressionou Enter usuário pressionou Enter usuário pressionou Enter no no no no JTextField textField3JTextField textField3JTextField textField3JTextField textField3
68 elseelseelseelse ifififif ( ( ( ( event.getSource() == textField3event.getSource() == textField3event.getSource() == textField3event.getSource() == textField3 ) ) ) )
69 string = String.format( string = String.format( string = String.format( string = String.format( "textField3: %s""textField3: %s""textField3: %s""textField3: %s", , , ,
70 event.getActionCommand()event.getActionCommand()event.getActionCommand()event.getActionCommand() ); ); ); );
71
72 // // // // usuário pressionou Enter no usuário pressionou Enter no usuário pressionou Enter no usuário pressionou Enter no JTextField pasJTextField pasJTextField pasJTextField passwordFieldswordFieldswordFieldswordField
73 elseelseelseelse ifififif ( ( ( ( event.getSource() == passwordFieldevent.getSource() == passwordFieldevent.getSource() == passwordFieldevent.getSource() == passwordField ) ) ) )
74 string = String.format( string = String.format( string = String.format( string = String.format( "passwordField: %s""passwordField: %s""passwordField: %s""passwordField: %s", , , ,
75 newnewnewnew String( String( String( String( passwordField.getPassword()passwordField.getPassword()passwordField.getPassword()passwordField.getPassword() ) ); ) ); ) ); ) );
76
77 // // // // exibe conteúdo do exibe conteúdo do exibe conteúdo do exibe conteúdo do JTextFieldJTextFieldJTextFieldJTextField
78 JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( nullnullnullnull, string ); , string ); , string ); , string );
79 } } } } // // // // fim do métodofim do métodofim do métodofim do método actionPerformed actionPerformed actionPerformed actionPerformed
80 } } } } // // // // fim da classefim da classefim da classefim da classe TextFieldHandler TextFieldHandler TextFieldHandler TextFieldHandler interna interna interna interna private private private private
81 } } } } // // // // fim da classe fim da classe fim da classe fim da classe TextFieldFrameTextFieldFrameTextFieldFrameTextFieldFrame
Introdução à Tecnologia Java – 02/2012
Exemplo57 // // // // usuário pressionou Enter no JTextField textField1usuário pressionou Enter no JTextField textField1usuário pressionou Enter no JTextField textField1usuário pressionou Enter no JTextField textField1
58 ifififif ( ( ( ( event.getSource() == textField1event.getSource() == textField1event.getSource() == textField1event.getSource() == textField1 ) ) ) )
59 string = String.format( string = String.format( string = String.format( string = String.format( "textField1: %s""textField1: %s""textField1: %s""textField1: %s",,,,
60 event.getActionCommand()event.getActionCommand()event.getActionCommand()event.getActionCommand() ); ); ); );
61
62 // // // // usuáriousuáriousuáriousuário pressionou Enter no JTextField textField2 pressionou Enter no JTextField textField2 pressionou Enter no JTextField textField2 pressionou Enter no JTextField textField2
63 elseelseelseelse ifififif ( ( ( ( event.getSource() == textField2event.getSource() == textField2event.getSource() == textField2event.getSource() == textField2 ) ) ) )
64 string = String.format( string = String.format( string = String.format( string = String.format( "textField2: %s""textField2: %s""textField2: %s""textField2: %s",,,,
65 event.getActionCommand()event.getActionCommand()event.getActionCommand()event.getActionCommand() ); ); ); );
66
Testa se a origem do evento é o primeiro
campo de texto
Obtém texto a partir do campo de texto
Testa se a origem do evento é o segundo
campo de texto
Celso Olivete Júnior 57
66
67 // // // // usuário pressionou Enter usuário pressionou Enter usuário pressionou Enter usuário pressionou Enter no no no no JTextField textField3JTextField textField3JTextField textField3JTextField textField3
68 elseelseelseelse ifififif ( ( ( ( event.getSource() == textField3event.getSource() == textField3event.getSource() == textField3event.getSource() == textField3 ) ) ) )
69 string = String.format( string = String.format( string = String.format( string = String.format( "textField3: %s""textField3: %s""textField3: %s""textField3: %s", , , ,
70 event.getActionCommand()event.getActionCommand()event.getActionCommand()event.getActionCommand() ); ); ); );
71
72 // // // // usuário pressionou Enter no usuário pressionou Enter no usuário pressionou Enter no usuário pressionou Enter no JTextField pasJTextField pasJTextField pasJTextField passwordFieldswordFieldswordFieldswordField
73 elseelseelseelse ifififif ( ( ( ( event.getSource() == passwordFieldevent.getSource() == passwordFieldevent.getSource() == passwordFieldevent.getSource() == passwordField ) ) ) )
74 string = String.format( string = String.format( string = String.format( string = String.format( "passwordField: %s""passwordField: %s""passwordField: %s""passwordField: %s", , , ,
75 newnewnewnew String( String( String( String( passwordField.getPassword()passwordField.getPassword()passwordField.getPassword()passwordField.getPassword() ) ); ) ); ) ); ) );
76
77 // // // // exibe conteúdo do exibe conteúdo do exibe conteúdo do exibe conteúdo do JTextFieldJTextFieldJTextFieldJTextField
78 JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( nullnullnullnull, string ); , string ); , string ); , string );
79 } } } } // // // // fim do métodofim do métodofim do métodofim do método actionPerformed actionPerformed actionPerformed actionPerformed
80 } } } } // // // // fim da classefim da classefim da classefim da classe TextFieldHandler TextFieldHandler TextFieldHandler TextFieldHandler interna interna interna interna private private private private
81 } } } } // // // // fim da classe fim da classe fim da classe fim da classe TextFieldFrameTextFieldFrameTextFieldFrameTextFieldFrame
Obtém texto a partir do campo de texto
Introdução à Tecnologia Java – 02/2012
Exemplo57 // // // // usuário pressionou Enter no JTextField textField1usuário pressionou Enter no JTextField textField1usuário pressionou Enter no JTextField textField1usuário pressionou Enter no JTextField textField1
58 ifififif ( ( ( ( event.getSource() == textField1event.getSource() == textField1event.getSource() == textField1event.getSource() == textField1 ) ) ) )
59 string = String.format( string = String.format( string = String.format( string = String.format( "textField1: %s""textField1: %s""textField1: %s""textField1: %s",,,,
60 event.getActionCommand()event.getActionCommand()event.getActionCommand()event.getActionCommand() ); ); ); );
61
62 // // // // usuáriousuáriousuáriousuário pressionou Enter no JTextField textField2 pressionou Enter no JTextField textField2 pressionou Enter no JTextField textField2 pressionou Enter no JTextField textField2
63 elseelseelseelse ifififif ( ( ( ( event.getSource() == textField2event.getSource() == textField2event.getSource() == textField2event.getSource() == textField2 ) ) ) )
64 string = String.format( string = String.format( string = String.format( string = String.format( "textField2: %s""textField2: %s""textField2: %s""textField2: %s",,,,
65 event.getActionCommand()event.getActionCommand()event.getActionCommand()event.getActionCommand() ); ); ); );
66
Testa se a origem do evento é o primeiro
campo de texto
Obtém texto a partir do campo de texto
Testa se a origem do evento é o segundo
campo de texto
Celso Olivete Júnior 58
66
67 // // // // usuário pressionou Enter usuário pressionou Enter usuário pressionou Enter usuário pressionou Enter no no no no JTextField textField3JTextField textField3JTextField textField3JTextField textField3
68 elseelseelseelse ifififif ( ( ( ( event.getSource() == textField3event.getSource() == textField3event.getSource() == textField3event.getSource() == textField3 ) ) ) )
69 string = String.format( string = String.format( string = String.format( string = String.format( "textField3: %s""textField3: %s""textField3: %s""textField3: %s", , , ,
70 event.getActionCommand()event.getActionCommand()event.getActionCommand()event.getActionCommand() ); ); ); );
71
72 // // // // usuário pressionou Enter no usuário pressionou Enter no usuário pressionou Enter no usuário pressionou Enter no JTextField pasJTextField pasJTextField pasJTextField passwordFieldswordFieldswordFieldswordField
73 elseelseelseelse ifififif ( ( ( ( event.getSource() == passwordFieldevent.getSource() == passwordFieldevent.getSource() == passwordFieldevent.getSource() == passwordField ) ) ) )
74 string = String.format( string = String.format( string = String.format( string = String.format( "passwordField: %s""passwordField: %s""passwordField: %s""passwordField: %s", , , ,
75 newnewnewnew String( String( String( String( passwordField.getPassword()passwordField.getPassword()passwordField.getPassword()passwordField.getPassword() ) ); ) ); ) ); ) );
76
77 // // // // exibe conteúdo do exibe conteúdo do exibe conteúdo do exibe conteúdo do JTextFieldJTextFieldJTextFieldJTextField
78 JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( nullnullnullnull, string ); , string ); , string ); , string );
79 } } } } // // // // fim do métodofim do métodofim do métodofim do método actionPerformed actionPerformed actionPerformed actionPerformed
80 } } } } // // // // fim da classefim da classefim da classefim da classe TextFieldHandler TextFieldHandler TextFieldHandler TextFieldHandler interna interna interna interna private private private private
81 } } } } // // // // fim da classe fim da classe fim da classe fim da classe TextFieldFrameTextFieldFrameTextFieldFrameTextFieldFrame
Obtém texto a partir do campo de texto
Testa se a origem do evento é o terceiro
campo de texto
Introdução à Tecnologia Java – 02/2012
Exemplo57 // // // // usuário pressionou Enter no JTextField textField1usuário pressionou Enter no JTextField textField1usuário pressionou Enter no JTextField textField1usuário pressionou Enter no JTextField textField1
58 ifififif ( ( ( ( event.getSource() == textField1event.getSource() == textField1event.getSource() == textField1event.getSource() == textField1 ) ) ) )
59 string = String.format( string = String.format( string = String.format( string = String.format( "textField1: %s""textField1: %s""textField1: %s""textField1: %s",,,,
60 event.getActionCommand()event.getActionCommand()event.getActionCommand()event.getActionCommand() ); ); ); );
61
62 // // // // usuáriousuáriousuáriousuário pressionou Enter no JTextField textField2 pressionou Enter no JTextField textField2 pressionou Enter no JTextField textField2 pressionou Enter no JTextField textField2
63 elseelseelseelse ifififif ( ( ( ( event.getSource() == textField2event.getSource() == textField2event.getSource() == textField2event.getSource() == textField2 ) ) ) )
64 string = String.format( string = String.format( string = String.format( string = String.format( "textField2: %s""textField2: %s""textField2: %s""textField2: %s",,,,
65 event.getActionCommand()event.getActionCommand()event.getActionCommand()event.getActionCommand() ); ); ); );
66
Testa se a origem do evento é o primeiro
campo de texto
Obtém texto a partir do campo de texto
Testa se a origem do evento é o segundo
campo de texto
Celso Olivete Júnior 59
66
67 // // // // usuário pressionou Enter usuário pressionou Enter usuário pressionou Enter usuário pressionou Enter no no no no JTextField textField3JTextField textField3JTextField textField3JTextField textField3
68 elseelseelseelse ifififif ( ( ( ( event.getSource() == textField3event.getSource() == textField3event.getSource() == textField3event.getSource() == textField3 ) ) ) )
69 string = String.format( string = String.format( string = String.format( string = String.format( "textField3: %s""textField3: %s""textField3: %s""textField3: %s", , , ,
70 event.getActionCommand()event.getActionCommand()event.getActionCommand()event.getActionCommand() ); ); ); );
71
72 // // // // usuário pressionou Enter no usuário pressionou Enter no usuário pressionou Enter no usuário pressionou Enter no JTextField pasJTextField pasJTextField pasJTextField passwordFieldswordFieldswordFieldswordField
73 elseelseelseelse ifififif ( ( ( ( event.getSource() == passwordFieldevent.getSource() == passwordFieldevent.getSource() == passwordFieldevent.getSource() == passwordField ) ) ) )
74 string = String.format( string = String.format( string = String.format( string = String.format( "passwordField: %s""passwordField: %s""passwordField: %s""passwordField: %s", , , ,
75 newnewnewnew String( String( String( String( passwordField.getPassword()passwordField.getPassword()passwordField.getPassword()passwordField.getPassword() ) ); ) ); ) ); ) );
76
77 // // // // exibe conteúdo do exibe conteúdo do exibe conteúdo do exibe conteúdo do JTextFieldJTextFieldJTextFieldJTextField
78 JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( nullnullnullnull, string ); , string ); , string ); , string );
79 } } } } // // // // fim do métodofim do métodofim do métodofim do método actionPerformed actionPerformed actionPerformed actionPerformed
80 } } } } // // // // fim da classefim da classefim da classefim da classe TextFieldHandler TextFieldHandler TextFieldHandler TextFieldHandler interna interna interna interna private private private private
81 } } } } // // // // fim da classe fim da classe fim da classe fim da classe TextFieldFrameTextFieldFrameTextFieldFrameTextFieldFrame
Obtém texto a partir do campo de texto
Obtém texto a partir do campo de texto
Testa se a origem do evento é o terceiro
campo de texto
Introdução à Tecnologia Java – 02/2012
Exemplo57 // // // // usuário pressionou Enter no JTextField textField1usuário pressionou Enter no JTextField textField1usuário pressionou Enter no JTextField textField1usuário pressionou Enter no JTextField textField1
58 ifififif ( ( ( ( event.getSource() == textField1event.getSource() == textField1event.getSource() == textField1event.getSource() == textField1 ) ) ) )
59 string = String.format( string = String.format( string = String.format( string = String.format( "textField1: %s""textField1: %s""textField1: %s""textField1: %s",,,,
60 event.getActionCommand()event.getActionCommand()event.getActionCommand()event.getActionCommand() ); ); ); );
61
62 // // // // usuáriousuáriousuáriousuário pressionou Enter no JTextField textField2 pressionou Enter no JTextField textField2 pressionou Enter no JTextField textField2 pressionou Enter no JTextField textField2
63 elseelseelseelse ifififif ( ( ( ( event.getSource() == textField2event.getSource() == textField2event.getSource() == textField2event.getSource() == textField2 ) ) ) )
64 string = String.format( string = String.format( string = String.format( string = String.format( "textField2: %s""textField2: %s""textField2: %s""textField2: %s",,,,
65 event.getActionCommand()event.getActionCommand()event.getActionCommand()event.getActionCommand() ); ); ); );
66
Testa se a origem do evento é o primeiro
campo de texto
Obtém texto a partir do campo de texto
Testa se a origem do evento é o segundo
campo de texto
Celso Olivete Júnior 60
66
67 // // // // usuário pressionou Enter usuário pressionou Enter usuário pressionou Enter usuário pressionou Enter no no no no JTextField textField3JTextField textField3JTextField textField3JTextField textField3
68 elseelseelseelse ifififif ( ( ( ( event.getSource() == textField3event.getSource() == textField3event.getSource() == textField3event.getSource() == textField3 ) ) ) )
69 string = String.format( string = String.format( string = String.format( string = String.format( "textField3: %s""textField3: %s""textField3: %s""textField3: %s", , , ,
70 event.getActionCommand()event.getActionCommand()event.getActionCommand()event.getActionCommand() ); ); ); );
71
72 // // // // usuário pressionou Enter no usuário pressionou Enter no usuário pressionou Enter no usuário pressionou Enter no JTextField pasJTextField pasJTextField pasJTextField passwordFieldswordFieldswordFieldswordField
73 elseelseelseelse ifififif ( ( ( ( event.getSource() == passwordFieldevent.getSource() == passwordFieldevent.getSource() == passwordFieldevent.getSource() == passwordField ) ) ) )
74 string = String.format( string = String.format( string = String.format( string = String.format( "passwordField: %s""passwordField: %s""passwordField: %s""passwordField: %s", , , ,
75 newnewnewnew String( String( String( String( passwordField.getPassword()passwordField.getPassword()passwordField.getPassword()passwordField.getPassword() ) ); ) ); ) ); ) );
76
77 // // // // exibe conteúdo do exibe conteúdo do exibe conteúdo do exibe conteúdo do JTextFieldJTextFieldJTextFieldJTextField
78 JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( nullnullnullnull, string ); , string ); , string ); , string );
79 } } } } // // // // fim do métodofim do métodofim do métodofim do método actionPerformed actionPerformed actionPerformed actionPerformed
80 } } } } // // // // fim da classefim da classefim da classefim da classe TextFieldHandler TextFieldHandler TextFieldHandler TextFieldHandler interna interna interna interna private private private private
81 } } } } // // // // fim da classe fim da classe fim da classe fim da classe TextFieldFrameTextFieldFrameTextFieldFrameTextFieldFrame
Obtém texto a partir do campo de texto
Obtém texto a partir do campo de texto
Testa se a origem do evento é o terceiro
campo de texto
Testa se a origem do evento é o campo de senha
Introdução à Tecnologia Java – 02/2012
Exemplo57 // // // // usuário pressionou Enter no JTextField textField1usuário pressionou Enter no JTextField textField1usuário pressionou Enter no JTextField textField1usuário pressionou Enter no JTextField textField1
58 ifififif ( ( ( ( event.getSource() == textField1event.getSource() == textField1event.getSource() == textField1event.getSource() == textField1 ) ) ) )
59 string = String.format( string = String.format( string = String.format( string = String.format( "textField1: %s""textField1: %s""textField1: %s""textField1: %s",,,,
60 event.getActionCommand()event.getActionCommand()event.getActionCommand()event.getActionCommand() ); ); ); );
61
62 // // // // usuáriousuáriousuáriousuário pressionou Enter no JTextField textField2 pressionou Enter no JTextField textField2 pressionou Enter no JTextField textField2 pressionou Enter no JTextField textField2
63 elseelseelseelse ifififif ( ( ( ( event.getSource() == textField2event.getSource() == textField2event.getSource() == textField2event.getSource() == textField2 ) ) ) )
64 string = String.format( string = String.format( string = String.format( string = String.format( "textField2: %s""textField2: %s""textField2: %s""textField2: %s",,,,
65 event.getActionCommand()event.getActionCommand()event.getActionCommand()event.getActionCommand() ); ); ); );
66
Testa se a origem do evento é o primeiro
campo de texto
Obtém texto a partir do campo de texto
Testa se a origem do evento é o segundo
campo de texto
Celso Olivete Júnior 61
66
67 // // // // usuário pressionou Enter usuário pressionou Enter usuário pressionou Enter usuário pressionou Enter no no no no JTextField textField3JTextField textField3JTextField textField3JTextField textField3
68 elseelseelseelse ifififif ( ( ( ( event.getSource() == textField3event.getSource() == textField3event.getSource() == textField3event.getSource() == textField3 ) ) ) )
69 string = String.format( string = String.format( string = String.format( string = String.format( "textField3: %s""textField3: %s""textField3: %s""textField3: %s", , , ,
70 event.getActionCommand()event.getActionCommand()event.getActionCommand()event.getActionCommand() ); ); ); );
71
72 // // // // usuário pressionou Enter no usuário pressionou Enter no usuário pressionou Enter no usuário pressionou Enter no JTextField pasJTextField pasJTextField pasJTextField passwordFieldswordFieldswordFieldswordField
73 elseelseelseelse ifififif ( ( ( ( event.getSource() == passwordFieldevent.getSource() == passwordFieldevent.getSource() == passwordFieldevent.getSource() == passwordField ) ) ) )
74 string = String.format( string = String.format( string = String.format( string = String.format( "passwordField: %s""passwordField: %s""passwordField: %s""passwordField: %s", , , ,
75 newnewnewnew String( String( String( String( passwordField.getPassword()passwordField.getPassword()passwordField.getPassword()passwordField.getPassword() ) ); ) ); ) ); ) );
76
77 // // // // exibe conteúdo do exibe conteúdo do exibe conteúdo do exibe conteúdo do JTextFieldJTextFieldJTextFieldJTextField
78 JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( nullnullnullnull, string ); , string ); , string ); , string );
79 } } } } // // // // fim do métodofim do métodofim do métodofim do método actionPerformed actionPerformed actionPerformed actionPerformed
80 } } } } // // // // fim da classefim da classefim da classefim da classe TextFieldHandler TextFieldHandler TextFieldHandler TextFieldHandler interna interna interna interna private private private private
81 } } } } // // // // fim da classe fim da classe fim da classe fim da classe TextFieldFrameTextFieldFrameTextFieldFrameTextFieldFrame
Obtém texto a partir do campo de texto
Obtém texto a partir do campo de texto
Obtém senha a partir do campo de senha
Testa se a origem do evento é o terceiro
campo de texto
Testa se a origem do evento é o campo de senha
Introdução à Tecnologia Java – 02/2012
Exemplo 1 // Fig. 11.10: TextFieldTest.java// Fig. 11.10: TextFieldTest.java// Fig. 11.10: TextFieldTest.java// Fig. 11.10: TextFieldTest.java
2 // Test// Test// Test// Testando ando ando ando TextFieldFrame.TextFieldFrame.TextFieldFrame.TextFieldFrame.
3 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
4
5 publicpublicpublicpublic classclassclassclass TextFieldTest TextFieldTest TextFieldTest TextFieldTest
6 {{{{
7 publicpublicpublicpublic staticstaticstaticstatic voidvoidvoidvoid main( String args[] ) main( String args[] ) main( String args[] ) main( String args[] )
8 { { { {
9 TextFieldFrame textFieldFrame = TextFieldFrame textFieldFrame = TextFieldFrame textFieldFrame = TextFieldFrame textFieldFrame = newnewnewnew TextFieldF TextFieldF TextFieldF TextFieldFrame();rame();rame();rame();
Celso Olivete Júnior 62
9 TextFieldFrame textFieldFrame = TextFieldFrame textFieldFrame = TextFieldFrame textFieldFrame = TextFieldFrame textFieldFrame = newnewnewnew TextFieldF TextFieldF TextFieldF TextFieldFrame();rame();rame();rame();
10 textFieldFrame.setDefaultCloseOperation( textFieldFrame.setDefaultCloseOperation( textFieldFrame.setDefaultCloseOperation( textFieldFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSE ); ); ); );
11 textFieldFrame.setSize( textFieldFrame.setSize( textFieldFrame.setSize( textFieldFrame.setSize( 325325325325, , , , 100100100100 ); ); ); ); // // // // configuraconfiguraconfiguraconfigura tamanho dtamanho dtamanho dtamanho do frameo frameo frameo frame
12 textFieldFrame.setVisible( textFieldFrame.setVisible( textFieldFrame.setVisible( textFieldFrame.setVisible( truetruetruetrue ); ); ); ); // // // // exibe o exibe o exibe o exibe o frameframeframeframe
13 } } } } // // // // fim defim defim defim de main main main main
14 } } } } // // // // fim da classe fim da classe fim da classe fim da classe TextFieldTestTextFieldTestTextFieldTestTextFieldTest
Introdução à Tecnologia Java – 02/2012
Exemplo
Celso Olivete Júnior 63
Introdução à Tecnologia Java – 02/2012
Configurando o tratamento de evento de um
componente GUI
• Vários passos de codificação são requeridos
para que uma aplicação responda a eventos:
1. Criar uma classe para o handler de evento.
2. Implementar uma interface ouvinte de evento
apropriada.
3. Registrar o handler de evento.
Celso Olivete Júnior 64
Introdução à Tecnologia Java – 02/2012
Classe aninhada para implementar um handlerde evento
• Classe de primeiro nível:•Não declarada dentro de uma outra classe.
•Classes aninhadas:•Classes aninhadas:•Declaradas dentro de uma outra classe.
•Classes aninhadas não-static são chamadas classesinternas.
•Frequentemente utilizadas para tratamento deeventos.
Celso Olivete Júnior 65
Introdução à Tecnologia Java – 02/2012
Classe aninhada para implementar um
handler de evento
• JTextField e JPasswordField:
•Pressionar Enter dentro de um desses campos•Pressionar Enter dentro de um desses campos
causa um ActionEvent.
•Processado pelos objetos que implementam a
interface ActionListener.
Celso Olivete Júnior 66
Introdução à Tecnologia Java – 02/2012
Tipos de eventosComponentes
afetados“Listener” addxxxListener
Métodos do Listener
ButtonTextFieldMenuItem
ActionListener .addActionListener() actionPerformed(ActionEvent e)
ListComboBox
ItemListener .addItemListener() stateChanged(ChangeEvent e)
Celso Olivete Júnior 67
ComboBox (ChangeEvent e)
key oncomponent
KeyListener .addKeyListener() keyPressed(), keyReleased(),
keyTyped()
mouse oncomponent
MouseListener .addMouseListener() mouseClicked(), mouseEntered(), mouseExited(),
mousePressed(), mouseReleased()
mouse oncomponent
MouseMotionListener .addMouseMotionListener() mouseMoved(), mouseDragged()
Frame WindowListener .addWindowListener() windowClosing(WindowEvent e), ...
Introdução à Tecnologia Java – 02/2012
Registrando o handler de evento para cada
campo de texto
•Registrando um handler de evento.
•Chama o método addActionListener para•Chama o método addActionListener para
registrar um objeto ActionListener.
•ActionListener ouve eventos no objeto.
Celso Olivete Júnior 68
Introdução à Tecnologia Java – 02/2012
Detalhes do método actionPerformed da classeTextFieldHandler
•Fonte do evento:•Componente a partir do qual o evento se origina.
•Pode ser determinado utilizando o método•Pode ser determinado utilizando o métodogetSource.
•O texto em um JTextField pode ser adquiridoutilizando getActionCommand.
•O texto em um JPasswordField pode ser adquiridoutilizando getPassword.
Celso Olivete Júnior 69
Introdução à Tecnologia Java – 02/2012
Tipos comuns de eventos GUI e interfaces
ouvintes
• Tipos de eventos:
•Todos são subclasses de AWTEvent.•Todos são subclasses de AWTEvent.
•Alguns declarados no pacote java.awt.event.
•Aqueles específicos a componentes Swing
declarados no javax.swing.event.
Celso Olivete Júnior 70
Introdução à Tecnologia Java – 02/2012
Tipos comuns de eventos GUI e interfaces
ouvintes
•Modelo de evento de delegação:
•A origem do evento é o componente com o qual o
usuário interage.
•O objeto do evento é criado e contém as
informações sobre o evento que aconteceu.
•O ouvinte de evento é notificado quando um evento
acontece.Celso Olivete Júnior 71
Introdução à Tecnologia Java – 02/2012
Algumas classes de evento do pacote
java.awt.event.
Celso Olivete Júnior 72
Introdução à Tecnologia Java – 02/2012
Interfaces ouvintes
Algumas interfaces ouvintes de eventos comuns do pacote java.awt.event.
Celso Olivete Júnior 73
Introdução à Tecnologia Java – 02/2012
O tratamento de evento
• Perguntas remanescentes:
•Como o handler de evento ficou registrado?
•Como o componente GUI sabe chamar•Como o componente GUI sabe chamar
actionPerformed em vez de algum outro método
de tratamento de evento?
Celso Olivete Júnior 74
Introdução à Tecnologia Java – 02/2012
Registrando eventos
• Cada JComponent tem uma variável de
instância listenerList:
•Objeto do tipo EventListenerList.•Objeto do tipo EventListenerList.
•Mantém referências a todos os seus ouvintes
registrados.
Celso Olivete Júnior 75
Introdução à Tecnologia Java – 02/2012
Registro de evento para
JTextField textField1
Celso Olivete Júnior 76
Introdução à Tecnologia Java – 02/2012
Invocação de handler de evento
• Eventos são despachados somente aosouvintes dos eventos que correspondem ao tipode evento.
•Eventos têm um ID de evento único que especifica•Eventos têm um ID de evento único que especificao tipo de evento.
•MouseEvents são tratados por MouseListenerse MouseMotionsListeners.
•KeyEvents são tratados por KeyListeners.Celso Olivete Júnior 77
Introdução à Tecnologia Java – 02/2012
JButton
• Botão:
•O usuário do componente clica para
desencadear uma ação específica.
•Pode ser botão de comando, caixa de seleção,
botão de alternância ou botão de opção.
•Os tipos de botões são subclasses da classe
AbstractButton.
Celso Olivete Júnior 78
Introdução à Tecnologia Java – 02/2012
JButton
•Botão de comando:
•Gera um ActionEvent quando é clicado.
•Criado com a classe JButton.•Criado com a classe JButton.
•O texto na face do botão é chamado rótulo do
botão.
Celso Olivete Júnior 79
Introdução à Tecnologia Java – 02/2012
Hierarquia do botão Swing
Celso Olivete Júnior 80
Introdução à Tecnologia Java – 02/2012
1 // Fig. 11.15: ButtonFrame.java// Fig. 11.15: ButtonFrame.java// Fig. 11.15: ButtonFrame.java// Fig. 11.15: ButtonFrame.java
2 // Cr// Cr// Cr// Criiiiando ando ando ando JButtons.JButtons.JButtons.JButtons.
3 importimportimportimport java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout;
4 importimportimportimport java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener;
5 importimportimportimport java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent;
6 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
7 importimportimportimport javax.swing.JButton; javax.swing.JButton; javax.swing.JButton; javax.swing.JButton;
8 importimportimportimport javax.sw javax.sw javax.sw javax.swing.Icon;ing.Icon;ing.Icon;ing.Icon;
9 importimportimportimport javax.swing.ImageIcon; javax.swing.ImageIcon; javax.swing.ImageIcon; javax.swing.ImageIcon;
10 importimportimportimport javax.swing.JOptionPane; javax.swing.JOptionPane; javax.swing.JOptionPane; javax.swing.JOptionPane;
11
12 publicpublicpublicpublic classclassclassclass ButtonFrame ButtonFrame ButtonFrame ButtonFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
13 {{{{
Celso Olivete Júnior 81
13 {{{{
14 privateprivateprivateprivate JButton plainJButton; JButton plainJButton; JButton plainJButton; JButton plainJButton; // b// b// b// boooottttão apenas com textoão apenas com textoão apenas com textoão apenas com texto
15 privateprivateprivateprivate JButton fancyJButton; JButton fancyJButton; JButton fancyJButton; JButton fancyJButton; // b// b// b// boooottttão com ão com ão com ão com íconesíconesíconesícones
16
17 // ButtonFrame ad // ButtonFrame ad // ButtonFrame ad // ButtonFrame adiiiicionacionacionaciona JButtons JButtons JButtons JButtons aaaaoooo JFrame JFrame JFrame JFrame
18 publicpublicpublicpublic ButtonFrame() ButtonFrame() ButtonFrame() ButtonFrame()
19 { { { {
20 supersupersupersuper( ( ( ( "Testing Buttons""Testing Buttons""Testing Buttons""Testing Buttons" ); ); ); );
21 setLayout( new FlowLayout() ); setLayout( new FlowLayout() ); setLayout( new FlowLayout() ); setLayout( new FlowLayout() ); // // // // cccconfigura o onfigura o onfigura o onfigura o llllayoutayoutayoutayout do frame do frame do frame do frame
22
23 plainJButton = plainJButton = plainJButton = plainJButton = newnewnewnew JButton( JButton( JButton( JButton( "Plain B"Plain B"Plain B"Plain Button"utton"utton"utton" ); ); ); ); // b// b// b// boooottttão com textoão com textoão com textoão com texto
24 add( plainJButton ); add( plainJButton ); add( plainJButton ); add( plainJButton ); // a// a// a// addddicionaicionaicionaiciona plainJButton plainJButton plainJButton plainJButton aaaaoooo JFrame JFrame JFrame JFrame
25
Introdução à Tecnologia Java – 02/2012
1 // Fig. 11.15: ButtonFrame.java// Fig. 11.15: ButtonFrame.java// Fig. 11.15: ButtonFrame.java// Fig. 11.15: ButtonFrame.java
2 // Cr// Cr// Cr// Criiiiando ando ando ando JButtons.JButtons.JButtons.JButtons.
3 importimportimportimport java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout;
4 importimportimportimport java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener;
5 importimportimportimport java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent;
6 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
7 importimportimportimport javax.swing.JButton; javax.swing.JButton; javax.swing.JButton; javax.swing.JButton;
8 importimportimportimport javax.sw javax.sw javax.sw javax.swing.Icon;ing.Icon;ing.Icon;ing.Icon;
9 importimportimportimport javax.swing.ImageIcon; javax.swing.ImageIcon; javax.swing.ImageIcon; javax.swing.ImageIcon;
10 importimportimportimport javax.swing.JOptionPane; javax.swing.JOptionPane; javax.swing.JOptionPane; javax.swing.JOptionPane;
11
12 publicpublicpublicpublic classclassclassclass ButtonFrame ButtonFrame ButtonFrame ButtonFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
13 {{{{
Declara duas variáveis de
instância JButton
Celso Olivete Júnior 82
13 {{{{
14 privateprivateprivateprivate JButton plainJButton; JButton plainJButton; JButton plainJButton; JButton plainJButton; // b// b// b// boooottttão apenas com textoão apenas com textoão apenas com textoão apenas com texto
15 privateprivateprivateprivate JButton fancyJButton; JButton fancyJButton; JButton fancyJButton; JButton fancyJButton; // b// b// b// boooottttão com ão com ão com ão com íconesíconesíconesícones
16
17 // ButtonFrame ad // ButtonFrame ad // ButtonFrame ad // ButtonFrame adiiiicionacionacionaciona JButtons JButtons JButtons JButtons aaaaoooo JFrame JFrame JFrame JFrame
18 publicpublicpublicpublic ButtonFrame() ButtonFrame() ButtonFrame() ButtonFrame()
19 { { { {
20 supersupersupersuper( ( ( ( "Testing Buttons""Testing Buttons""Testing Buttons""Testing Buttons" ); ); ); );
21 setLayout( new FlowLayout() ); setLayout( new FlowLayout() ); setLayout( new FlowLayout() ); setLayout( new FlowLayout() ); // // // // cccconfigura o onfigura o onfigura o onfigura o llllayoutayoutayoutayout do frame do frame do frame do frame
22
23 plainJButton = plainJButton = plainJButton = plainJButton = newnewnewnew JButton( JButton( JButton( JButton( "Plain B"Plain B"Plain B"Plain Button"utton"utton"utton" ); ); ); ); // b// b// b// boooottttão com textoão com textoão com textoão com texto
24 add( plainJButton ); add( plainJButton ); add( plainJButton ); add( plainJButton ); // a// a// a// addddicionaicionaicionaiciona plainJButton plainJButton plainJButton plainJButton aaaaoooo JFrame JFrame JFrame JFrame
25
Introdução à Tecnologia Java – 02/2012
1 // Fig. 11.15: ButtonFrame.java// Fig. 11.15: ButtonFrame.java// Fig. 11.15: ButtonFrame.java// Fig. 11.15: ButtonFrame.java
2 // Cr// Cr// Cr// Criiiiando ando ando ando JButtons.JButtons.JButtons.JButtons.
3 importimportimportimport java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout;
4 importimportimportimport java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener;
5 importimportimportimport java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent;
6 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
7 importimportimportimport javax.swing.JButton; javax.swing.JButton; javax.swing.JButton; javax.swing.JButton;
8 importimportimportimport javax.sw javax.sw javax.sw javax.swing.Icon;ing.Icon;ing.Icon;ing.Icon;
9 importimportimportimport javax.swing.ImageIcon; javax.swing.ImageIcon; javax.swing.ImageIcon; javax.swing.ImageIcon;
10 importimportimportimport javax.swing.JOptionPane; javax.swing.JOptionPane; javax.swing.JOptionPane; javax.swing.JOptionPane;
11
12 publicpublicpublicpublic classclassclassclass ButtonFrame ButtonFrame ButtonFrame ButtonFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
13 {{{{
Declara duas variáveis de
instância JButton
Celso Olivete Júnior 83
13 {{{{
14 privateprivateprivateprivate JButton plainJButton; JButton plainJButton; JButton plainJButton; JButton plainJButton; // b// b// b// boooottttão apenas com textoão apenas com textoão apenas com textoão apenas com texto
15 privateprivateprivateprivate JButton fancyJButton; JButton fancyJButton; JButton fancyJButton; JButton fancyJButton; // b// b// b// boooottttão com ão com ão com ão com íconesíconesíconesícones
16
17 // ButtonFrame ad // ButtonFrame ad // ButtonFrame ad // ButtonFrame adiiiicionacionacionaciona JButtons JButtons JButtons JButtons aaaaoooo JFrame JFrame JFrame JFrame
18 publicpublicpublicpublic ButtonFrame() ButtonFrame() ButtonFrame() ButtonFrame()
19 { { { {
20 supersupersupersuper( ( ( ( "Testing Buttons""Testing Buttons""Testing Buttons""Testing Buttons" ); ); ); );
21 setLayout( new FlowLayout() ); setLayout( new FlowLayout() ); setLayout( new FlowLayout() ); setLayout( new FlowLayout() ); // // // // cccconfigura o onfigura o onfigura o onfigura o llllayoutayoutayoutayout do frame do frame do frame do frame
22
23 plainJButton = plainJButton = plainJButton = plainJButton = newnewnewnew JButton( JButton( JButton( JButton( "Plain B"Plain B"Plain B"Plain Button"utton"utton"utton" ); ); ); ); // b// b// b// boooottttão com textoão com textoão com textoão com texto
24 add( plainJButton ); add( plainJButton ); add( plainJButton ); add( plainJButton ); // a// a// a// addddicionaicionaicionaiciona plainJButton plainJButton plainJButton plainJButton aaaaoooo JFrame JFrame JFrame JFrame
25
Cria um novo JButton
Introdução à Tecnologia Java – 02/2012
25
26 Icon bug1 = Icon bug1 = Icon bug1 = Icon bug1 = newnewnewnew ImageIcon( getClass().getResource( ImageIcon( getClass().getResource( ImageIcon( getClass().getResource( ImageIcon( getClass().getResource( "bug1.gif""bug1.gif""bug1.gif""bug1.gif" ) ); ) ); ) ); ) );
27 Icon bug2 = Icon bug2 = Icon bug2 = Icon bug2 = newnewnewnew ImageIcon( getClass().getResource( ImageIcon( getClass().getResource( ImageIcon( getClass().getResource( ImageIcon( getClass().getResource( "bug2.gif""bug2.gif""bug2.gif""bug2.gif" ) ); ) ); ) ); ) );
28 fancyJButton = fancyJButton = fancyJButton = fancyJButton = newnewnewnew JButton( JButton( JButton( JButton( "Fancy Button""Fancy Button""Fancy Button""Fancy Button", bug1 ); , bug1 ); , bug1 ); , bug1 ); // // // // ccccononononfigurafigurafigurafigura imag imag imag imagemememem
29 fancyJButton.setRolloverIcon( bug2 ); fancyJButton.setRolloverIcon( bug2 ); fancyJButton.setRolloverIcon( bug2 ); fancyJButton.setRolloverIcon( bug2 ); // // // // cccconfigura imagem deonfigura imagem deonfigura imagem deonfigura imagem de rollover rollover rollover rollover
30 add( fancyJButton ); add( fancyJButton ); add( fancyJButton ); add( fancyJButton ); // // // // aaaadicionadicionadicionadiciona fancyJButton fancyJButton fancyJButton fancyJButton aaaaoooo JFrame JFrame JFrame JFrame
Cria dois
ImageIconCria um novo
JButton
Configura o ícone de
Celso Olivete Júnior 84
Configura o ícone de
rollover para JButton
Aparece quando o mouse é
posicionado sobre um botão.
Introdução à Tecnologia Java – 02/2012
31
32 // cr// cr// cr// cria novoia novoia novoia novo ButtonHandler ButtonHandler ButtonHandler ButtonHandler para tratamento de evento de botpara tratamento de evento de botpara tratamento de evento de botpara tratamento de evento de botãoãoãoão
33 ButtonHandler handler = ButtonHandler handler = ButtonHandler handler = ButtonHandler handler = newnewnewnew ButtonHandler(); ButtonHandler(); ButtonHandler(); ButtonHandler();
34 fancyJButton.addActionListener( handler );fancyJButton.addActionListener( handler );fancyJButton.addActionListener( handler );fancyJButton.addActionListener( handler );
35 plainJButton.addActionListener( handlplainJButton.addActionListener( handlplainJButton.addActionListener( handlplainJButton.addActionListener( handler );er );er );er );
36 } } } } // // // // fim do construtor fim do construtor fim do construtor fim do construtor ButtonFrameButtonFrameButtonFrameButtonFrame
37 38 // // // // classe interna para tratamento de evento de botãoclasse interna para tratamento de evento de botãoclasse interna para tratamento de evento de botãoclasse interna para tratamento de evento de botão
39 privateprivateprivateprivate classclassclassclass ButtonHandler ButtonHandler ButtonHandler ButtonHandler implementsimplementsimplementsimplements ActionListener ActionListener ActionListener ActionListener
40 { { { {
41 // // // // trata evento de botãotrata evento de botãotrata evento de botãotrata evento de botão
42 publicpublicpublicpublic vovovovoidididid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
Cria um handler para botões
Celso Olivete Júnior 85
43 { { { {
44 JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( ButtonFrame.ButtonFrame.ButtonFrame.ButtonFrame.thisthisthisthis, String.format(, String.format(, String.format(, String.format(
45 "You pressed: %s""You pressed: %s""You pressed: %s""You pressed: %s", , , , event.getActionCommand()event.getActionCommand()event.getActionCommand()event.getActionCommand() ) ); ) ); ) ); ) );
46 } } } } // // // // fim do método fim do método fim do método fim do método actionPerformedactionPerformedactionPerformedactionPerformed
47 } } } } // // // // fim da classefim da classefim da classefim da classe ButtonHandler ButtonHandler ButtonHandler ButtonHandler interna p interna p interna p interna privaterivaterivaterivate
48 }}}} // // // // fim da classe fim da classe fim da classe fim da classe ButtonFrameButtonFrameButtonFrameButtonFrame
Introdução à Tecnologia Java – 02/2012
31
32 // cr// cr// cr// cria novoia novoia novoia novo ButtonHandler ButtonHandler ButtonHandler ButtonHandler para tratamento de evento de botpara tratamento de evento de botpara tratamento de evento de botpara tratamento de evento de botãoãoãoão
33 ButtonHandler handler = ButtonHandler handler = ButtonHandler handler = ButtonHandler handler = newnewnewnew ButtonHandler(); ButtonHandler(); ButtonHandler(); ButtonHandler();
34 fancyJButton.addActionListener( handler );fancyJButton.addActionListener( handler );fancyJButton.addActionListener( handler );fancyJButton.addActionListener( handler );
35 plainJButton.addActionListener( handlplainJButton.addActionListener( handlplainJButton.addActionListener( handlplainJButton.addActionListener( handler );er );er );er );
36 } } } } // // // // fim do construtor fim do construtor fim do construtor fim do construtor ButtonFrameButtonFrameButtonFrameButtonFrame
37 38 // // // // classe interna para tratamento de evento de botãoclasse interna para tratamento de evento de botãoclasse interna para tratamento de evento de botãoclasse interna para tratamento de evento de botão
39 privateprivateprivateprivate classclassclassclass ButtonHandler ButtonHandler ButtonHandler ButtonHandler implementsimplementsimplementsimplements ActionListener ActionListener ActionListener ActionListener
40 { { { {
41 // // // // trata evento de botãotrata evento de botãotrata evento de botãotrata evento de botão
42 publicpublicpublicpublic vovovovoidididid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
Cria um handler para botões
Registra um handler de evento
Celso Olivete Júnior 86
43 { { { {
44 JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( ButtonFrame.ButtonFrame.ButtonFrame.ButtonFrame.thisthisthisthis, String.format(, String.format(, String.format(, String.format(
45 "You pressed: %s""You pressed: %s""You pressed: %s""You pressed: %s", , , , event.getActionCommand()event.getActionCommand()event.getActionCommand()event.getActionCommand() ) ); ) ); ) ); ) );
46 } } } } // // // // fim do método fim do método fim do método fim do método actionPerformedactionPerformedactionPerformedactionPerformed
47 } } } } // // // // fim da classefim da classefim da classefim da classe ButtonHandler ButtonHandler ButtonHandler ButtonHandler interna p interna p interna p interna privaterivaterivaterivate
48 }}}} // // // // fim da classe fim da classe fim da classe fim da classe ButtonFrameButtonFrameButtonFrameButtonFrame
Introdução à Tecnologia Java – 02/2012
31
32 // cr// cr// cr// cria novoia novoia novoia novo ButtonHandler ButtonHandler ButtonHandler ButtonHandler para tratamento de evento de botpara tratamento de evento de botpara tratamento de evento de botpara tratamento de evento de botãoãoãoão
33 ButtonHandler handler = ButtonHandler handler = ButtonHandler handler = ButtonHandler handler = newnewnewnew ButtonHandler(); ButtonHandler(); ButtonHandler(); ButtonHandler();
34 fancyJButton.addActionListener( handler );fancyJButton.addActionListener( handler );fancyJButton.addActionListener( handler );fancyJButton.addActionListener( handler );
35 plainJButton.addActionListener( handlplainJButton.addActionListener( handlplainJButton.addActionListener( handlplainJButton.addActionListener( handler );er );er );er );
36 } } } } // // // // fim do construtor fim do construtor fim do construtor fim do construtor ButtonFrameButtonFrameButtonFrameButtonFrame
37 38 // // // // classe interna para tratamento de evento de botãoclasse interna para tratamento de evento de botãoclasse interna para tratamento de evento de botãoclasse interna para tratamento de evento de botão
39 privateprivateprivateprivate classclassclassclass ButtonHandler ButtonHandler ButtonHandler ButtonHandler implementsimplementsimplementsimplements ActionListener ActionListener ActionListener ActionListener
40 { { { {
41 // // // // trata evento de botãotrata evento de botãotrata evento de botãotrata evento de botão
42 publicpublicpublicpublic vovovovoidididid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
Cria um handler para botões
Registra um handler de evento
A classe interna implementa
ActionListener
Celso Olivete Júnior 87
43 { { { {
44 JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( ButtonFrame.ButtonFrame.ButtonFrame.ButtonFrame.thisthisthisthis, String.format(, String.format(, String.format(, String.format(
45 "You pressed: %s""You pressed: %s""You pressed: %s""You pressed: %s", , , , event.getActionCommand()event.getActionCommand()event.getActionCommand()event.getActionCommand() ) ); ) ); ) ); ) );
46 } } } } // // // // fim do método fim do método fim do método fim do método actionPerformedactionPerformedactionPerformedactionPerformed
47 } } } } // // // // fim da classefim da classefim da classefim da classe ButtonHandler ButtonHandler ButtonHandler ButtonHandler interna p interna p interna p interna privaterivaterivaterivate
48 }}}} // // // // fim da classe fim da classe fim da classe fim da classe ButtonFrameButtonFrameButtonFrameButtonFrame
Introdução à Tecnologia Java – 02/2012
31
32 // cr// cr// cr// cria novoia novoia novoia novo ButtonHandler ButtonHandler ButtonHandler ButtonHandler para tratamento de evento de botpara tratamento de evento de botpara tratamento de evento de botpara tratamento de evento de botãoãoãoão
33 ButtonHandler handler = ButtonHandler handler = ButtonHandler handler = ButtonHandler handler = newnewnewnew ButtonHandler(); ButtonHandler(); ButtonHandler(); ButtonHandler();
34 fancyJButton.addActionListener( handler );fancyJButton.addActionListener( handler );fancyJButton.addActionListener( handler );fancyJButton.addActionListener( handler );
35 plainJButton.addActionListener( handlplainJButton.addActionListener( handlplainJButton.addActionListener( handlplainJButton.addActionListener( handler );er );er );er );
36 } } } } // // // // fim do construtor fim do construtor fim do construtor fim do construtor ButtonFrameButtonFrameButtonFrameButtonFrame
37 38 // // // // classe interna para tratamento de evento de botãoclasse interna para tratamento de evento de botãoclasse interna para tratamento de evento de botãoclasse interna para tratamento de evento de botão
39 privateprivateprivateprivate classclassclassclass ButtonHandler ButtonHandler ButtonHandler ButtonHandler implementsimplementsimplementsimplements ActionListener ActionListener ActionListener ActionListener
40 { { { {
41 // // // // trata evento de botãotrata evento de botãotrata evento de botãotrata evento de botão
42 publicpublicpublicpublic vovovovoidididid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
Cria um handler para botões
Registra um handler de evento
A classe interna implementa
ActionListener
Celso Olivete Júnior 88
43 { { { {
44 JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( ButtonFrame.ButtonFrame.ButtonFrame.ButtonFrame.thisthisthisthis, String.format(, String.format(, String.format(, String.format(
45 "You pressed: %s""You pressed: %s""You pressed: %s""You pressed: %s", , , , event.getActionCommand()event.getActionCommand()event.getActionCommand()event.getActionCommand() ) ); ) ); ) ); ) );
46 } } } } // // // // fim do método fim do método fim do método fim do método actionPerformedactionPerformedactionPerformedactionPerformed
47 } } } } // // // // fim da classefim da classefim da classefim da classe ButtonHandler ButtonHandler ButtonHandler ButtonHandler interna p interna p interna p interna privaterivaterivaterivate
48 }}}} // // // // fim da classe fim da classe fim da classe fim da classe ButtonFrameButtonFrameButtonFrameButtonFrame
Acessa a instância da classe externa
utilizando essa referência
Introdução à Tecnologia Java – 02/2012
31
32 // cr// cr// cr// cria novoia novoia novoia novo ButtonHandler ButtonHandler ButtonHandler ButtonHandler para tratamento de evento de botpara tratamento de evento de botpara tratamento de evento de botpara tratamento de evento de botãoãoãoão
33 ButtonHandler handler = ButtonHandler handler = ButtonHandler handler = ButtonHandler handler = newnewnewnew ButtonHandler(); ButtonHandler(); ButtonHandler(); ButtonHandler();
34 fancyJButton.addActionListener( handler );fancyJButton.addActionListener( handler );fancyJButton.addActionListener( handler );fancyJButton.addActionListener( handler );
35 plainJButton.addActionListener( handlplainJButton.addActionListener( handlplainJButton.addActionListener( handlplainJButton.addActionListener( handler );er );er );er );
36 } } } } // // // // fim do construtor fim do construtor fim do construtor fim do construtor ButtonFrameButtonFrameButtonFrameButtonFrame
37 38 // // // // classe interna para tratamento de evento de botãoclasse interna para tratamento de evento de botãoclasse interna para tratamento de evento de botãoclasse interna para tratamento de evento de botão
39 privateprivateprivateprivate classclassclassclass ButtonHandler ButtonHandler ButtonHandler ButtonHandler implementsimplementsimplementsimplements ActionListener ActionListener ActionListener ActionListener
40 { { { {
41 // // // // trata evento de botãotrata evento de botãotrata evento de botãotrata evento de botão
42 publicpublicpublicpublic vovovovoidididid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
Cria um handler para botões
Registra um handler de evento
A classe interna implementa
ActionListener
Celso Olivete Júnior 89
43 { { { {
44 JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( JOptionPane.showMessageDialog( ButtonFrame.ButtonFrame.ButtonFrame.ButtonFrame.thisthisthisthis, String.format(, String.format(, String.format(, String.format(
45 "You pressed: %s""You pressed: %s""You pressed: %s""You pressed: %s", , , , event.getActionCommand()event.getActionCommand()event.getActionCommand()event.getActionCommand() ) ); ) ); ) ); ) );
46 } } } } // // // // fim do método fim do método fim do método fim do método actionPerformedactionPerformedactionPerformedactionPerformed
47 } } } } // // // // fim da classefim da classefim da classefim da classe ButtonHandler ButtonHandler ButtonHandler ButtonHandler interna p interna p interna p interna privaterivaterivaterivate
48 }}}} // // // // fim da classe fim da classe fim da classe fim da classe ButtonFrameButtonFrameButtonFrameButtonFrame
Acessa a instância da classe externa
utilizando essa referência
Obtém o texto do JButtonpressionado
Introdução à Tecnologia Java – 02/2012
1 // Fig. 11.16: ButtonTest.java// Fig. 11.16: ButtonTest.java// Fig. 11.16: ButtonTest.java// Fig. 11.16: ButtonTest.java
2 // Tes// Tes// Tes// Testandotandotandotando ButtonFrame. ButtonFrame. ButtonFrame. ButtonFrame.
3 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
4
5 publicpublicpublicpublic classclassclassclass ButtonTest ButtonTest ButtonTest ButtonTest
6 {{{{
7 publicpublicpublicpublic staticstaticstaticstatic voidvoidvoidvoid main( String args[] ) main( String args[] ) main( String args[] ) main( String args[] )
8 { { { {
9 ButtonFrame buttonFrame = ButtonFrame buttonFrame = ButtonFrame buttonFrame = ButtonFrame buttonFrame = newnewnewnew ButtonFrame(); ButtonFrame(); ButtonFrame(); ButtonFrame(); // cr// cr// cr// criaiaiaia B B B ButtonFrameuttonFrameuttonFrameuttonFrame
10 buttonFrame.setDefaultCloseOperation( buttonFrame.setDefaultCloseOperation( buttonFrame.setDefaultCloseOperation( buttonFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSE ); ); ); );
11 buttonFrame.setSize( buttonFrame.setSize( buttonFrame.setSize( buttonFrame.setSize( 275275275275, , , , 110110110110 ); ); ); ); // // // // configura tamanho do configura tamanho do configura tamanho do configura tamanho do frameframeframeframe
Celso Olivete Júnior 90
12 buttonFrame.setVisible( buttonFrame.setVisible( buttonFrame.setVisible( buttonFrame.setVisible( truetruetruetrue ); ); ); ); // // // // exibe o fexibe o fexibe o fexibe o framerameramerame
13 } } } } // // // // fim defim defim defim de main main main main
14 } } } } // // // // fimfimfimfim da classe da classe da classe da classe ButtonTestButtonTestButtonTestButtonTest
Introdução à Tecnologia Java – 02/2012
Resumo
Celso Olivete Júnior 91
Introdução à Tecnologia Java – 02/2012
JButton
• JButtons podem ter um ícone de rollover.
•Aparece quando o mouse é posicionado sobre um
botão.
•Adicionado a um JButton com o método
setRolloverIcon.
Celso Olivete Júnior 92
Introdução à Tecnologia Java – 02/2012
Botões que mantêm o estado
• Botões de estado:
•O Swing contém três tipos de botões de
estado:
•JToggleButton, JCheckBox e JRadioButton.
• JCheckBox e JRadioButton são subclasses de
JToggleButton.
Celso Olivete Júnior 93
Introdução à Tecnologia Java – 02/2012
JCheckBox
• JCheckBox:
•Contém um rótulo de caixa de seleção que aparece à
direita da caixa de seleção por padrão.
•Gera um ItemEvent quando é clicado.
•ItemEvents são tratados por um ItemListener.
•Passado para o método itemStateChanged.
•O método isSelected retorna se uma caixa de
seleção está selecionada (true) ou não (false).Celso Olivete Júnior 94
Introdução à Tecnologia Java – 02/2012
Exemplo 1 // Fig. 11.17: CheckBoxFrame.java// Fig. 11.17: CheckBoxFrame.java// Fig. 11.17: CheckBoxFrame.java// Fig. 11.17: CheckBoxFrame.java
2 // Cr// Cr// Cr// Criando botõesiando botõesiando botõesiando botões JCheckBox. JCheckBox. JCheckBox. JCheckBox.
3 importimportimportimport java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout;
4 importimportimportimport java.awt.Font; java.awt.Font; java.awt.Font; java.awt.Font;
5 importimportimportimport java.awt.event.ItemListener; java.awt.event.ItemListener; java.awt.event.ItemListener; java.awt.event.ItemListener;
6 importimportimportimport java.awt.event.ItemEvent; java.awt.event.ItemEvent; java.awt.event.ItemEvent; java.awt.event.ItemEvent;
7 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
8 importimportimportimport javax.swi javax.swi javax.swi javax.swing.JTextField;ng.JTextField;ng.JTextField;ng.JTextField;
9 importimportimportimport javax.swing.JCheckBox; javax.swing.JCheckBox; javax.swing.JCheckBox; javax.swing.JCheckBox;
10 Declara duas variáveis de instância
Celso Olivete Júnior 95
11 publicpublicpublicpublic classclassclassclass CheckBoxFrame CheckBoxFrame CheckBoxFrame CheckBoxFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
12 {{{{
13 privateprivateprivateprivate JTextField textField; JTextField textField; JTextField textField; JTextField textField; // // // // exibe o texto na alteração de fontesexibe o texto na alteração de fontesexibe o texto na alteração de fontesexibe o texto na alteração de fontes
14 privateprivateprivateprivate JCheckBox boldJCheckBox; JCheckBox boldJCheckBox; JCheckBox boldJCheckBox; JCheckBox boldJCheckBox; // // // // pppparaaraaraara aplicaraplicaraplicaraplicar////remover selremover selremover selremover seleçãoeçãoeçãoeção de negritode negritode negritode negrito
15 privateprivateprivateprivate JCheckBox italicJCheckBox; JCheckBox italicJCheckBox; JCheckBox italicJCheckBox; JCheckBox italicJCheckBox; // // // // para aplicarpara aplicarpara aplicarpara aplicar////removerremoverremoverremover seleção seleção seleção seleção de de de de ititititáááálilililicocococo
16
Declara duas variáveis de instância
JCheckBox
Introdução à Tecnologia Java – 02/2012
Exemplo
16
17 // // // // construtor construtor construtor construtor CheckBoxFrame CheckBoxFrame CheckBoxFrame CheckBoxFrame adicionaadicionaadicionaadiciona JCheckBoxes JCheckBoxes JCheckBoxes JCheckBoxes aaaa JFrame JFrame JFrame JFrame
18 publicpublicpublicpublic CheckBoxFrame() CheckBoxFrame() CheckBoxFrame() CheckBoxFrame()
19 { { { {
20 supersupersupersuper( ( ( ( "JCheckBox Test""JCheckBox Test""JCheckBox Test""JCheckBox Test" ); ); ); );
21 setLayout( setLayout( setLayout( setLayout( newnewnewnew FlowLayout() ); FlowLayout() ); FlowLayout() ); FlowLayout() ); // // // // configura oconfigura oconfigura oconfigura o layout layout layout layout do frame do frame do frame do frame
22
23 // // // // configura JTextField e sua fonteconfigura JTextField e sua fonteconfigura JTextField e sua fonteconfigura JTextField e sua fonte
24 textField = textField = textField = textField = newnewnewnew JTextField( JTextField( JTextField( JTextField( "Watch the font style change""Watch the font style change""Watch the font style change""Watch the font style change", , , , 20202020 ); ); ); );
Configura a origem do campo de
texto
Celso Olivete Júnior 96
24 textField = textField = textField = textField = newnewnewnew JTextField( JTextField( JTextField( JTextField( "Watch the font style change""Watch the font style change""Watch the font style change""Watch the font style change", , , , 20202020 ); ); ); );
25 textField.setFont( textField.setFont( textField.setFont( textField.setFont( newnewnewnew Font( Font( Font( Font( "Serif""Serif""Serif""Serif", , , , FontFontFontFont.PLAIN.PLAIN.PLAIN.PLAIN, , , , 14141414 ) ); ) ); ) ); ) );
26 add( textField ); add( textField ); add( textField ); add( textField ); // ad// ad// ad// adicionaicionaicionaiciona textField textField textField textField aaaa JFrame JFrame JFrame JFrame
27
Introdução à Tecnologia Java – 02/2012
Exemplo28 boldJCheckBox = boldJCheckBox = boldJCheckBox = boldJCheckBox = newnewnewnew JCheckBox( JCheckBox( JCheckBox( JCheckBox( "Bold""Bold""Bold""Bold" ); ); ); ); // // // // cria caixa de seleção de negritocria caixa de seleção de negritocria caixa de seleção de negritocria caixa de seleção de negrito
29 italicJCheckBox = italicJCheckBox = italicJCheckBox = italicJCheckBox = newnewnewnew JCheckBox( JCheckBox( JCheckBox( JCheckBox( "Italic""Italic""Italic""Italic" ); ); ); ); // cr// cr// cr// criaiaiaia it it it itáááállllicoicoicoico
30 add( boldJCheckBox ); add( boldJCheckBox ); add( boldJCheckBox ); add( boldJCheckBox ); // ad // ad // ad // adicionaicionaicionaiciona caixa de seleçcaixa de seleçcaixa de seleçcaixa de seleção para negrito aão para negrito aão para negrito aão para negrito a JFrame JFrame JFrame JFrame
31 add( italicJCheckBox ); add( italicJCheckBox ); add( italicJCheckBox ); add( italicJCheckBox ); // ad// ad// ad// adicionaicionaicionaiciona caixa de seleção para negrito caixa de seleção para negrito caixa de seleção para negrito caixa de seleção para negrito aaaa JFrame JFrame JFrame JFrame
32
33 // regist// regist// regist// registrararara listenerslistenerslistenerslisteners para para para para JCheckBoxes JCheckBoxes JCheckBoxes JCheckBoxes
34 CheckBoxHandler handler = CheckBoxHandler handler = CheckBoxHandler handler = CheckBoxHandler handler = newnewnewnew CheckBoxHandler(); CheckBoxHandler(); CheckBoxHandler(); CheckBoxHandler();
35 boldJCheckBox.addItemListener( handler );boldJCheckBox.addItemListener( handler );boldJCheckBox.addItemListener( handler );boldJCheckBox.addItemListener( handler );
36 italicJCheckBox.addItemListener( handler );italicJCheckBox.addItemListener( handler );italicJCheckBox.addItemListener( handler );italicJCheckBox.addItemListener( handler );
37
Cria dois JCheckBoxes
Celso Olivete Júnior 97
37 } } } } // // // // fim do construtorfim do construtorfim do construtorfim do construtor CheckBoxFrame CheckBoxFrame CheckBoxFrame CheckBoxFrame
38
39 // // // // classe interna private para tratamento de evento ItemListenerclasse interna private para tratamento de evento ItemListenerclasse interna private para tratamento de evento ItemListenerclasse interna private para tratamento de evento ItemListener
40 privateprivateprivateprivate classclassclassclass CheckBoxHandler CheckBoxHandler CheckBoxHandler CheckBoxHandler implementsimplementsimplementsimplements ItemListener ItemListener ItemListener ItemListener
41 { { { {
42 privateprivateprivateprivate intintintint valBold = valBold = valBold = valBold = Font.PLAINFont.PLAINFont.PLAINFont.PLAIN; ; ; ; // // // // controla o estilo de fonte negritocontrola o estilo de fonte negritocontrola o estilo de fonte negritocontrola o estilo de fonte negrito
43 privateprivateprivateprivate intintintint valItalic = valItalic = valItalic = valItalic = Font.PLAINFont.PLAINFont.PLAINFont.PLAIN; ; ; ; // // // // controla o estilo de fonte controla o estilo de fonte controla o estilo de fonte controla o estilo de fonte itálicoitálicoitálicoitálico
44
45 // respond// respond// respond// responde aos eventos de caixa de seleçãoe aos eventos de caixa de seleçãoe aos eventos de caixa de seleçãoe aos eventos de caixa de seleção
46 publicpublicpublicpublic voidvoidvoidvoid itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event )
47 { { { {
48 // process // process // process // processa a a a aos aos aos aos eventos de caixa de seleçeventos de caixa de seleçeventos de caixa de seleçeventos de caixa de seleção de negritoão de negritoão de negritoão de negrito
49 ifififif ( ( ( ( event.getSource() == boldJCheckBoxevent.getSource() == boldJCheckBoxevent.getSource() == boldJCheckBoxevent.getSource() == boldJCheckBox ) ) ) )
50 valBold = valBold = valBold = valBold =
51 boldJCheckBoboldJCheckBoboldJCheckBoboldJCheckBox.isSelected()x.isSelected()x.isSelected()x.isSelected() ? ? ? ? Font.BOLDFont.BOLDFont.BOLDFont.BOLD : : : : Font.PLAINFont.PLAINFont.PLAINFont.PLAIN;;;;
52
Introdução à Tecnologia Java – 02/2012
Exemplo28 boldJCheckBox = boldJCheckBox = boldJCheckBox = boldJCheckBox = newnewnewnew JCheckBox( JCheckBox( JCheckBox( JCheckBox( "Bold""Bold""Bold""Bold" ); ); ); ); // // // // cria caixa de seleção de negritocria caixa de seleção de negritocria caixa de seleção de negritocria caixa de seleção de negrito
29 italicJCheckBox = italicJCheckBox = italicJCheckBox = italicJCheckBox = newnewnewnew JCheckBox( JCheckBox( JCheckBox( JCheckBox( "Italic""Italic""Italic""Italic" ); ); ); ); // cr// cr// cr// criaiaiaia it it it itáááállllicoicoicoico
30 add( boldJCheckBox ); add( boldJCheckBox ); add( boldJCheckBox ); add( boldJCheckBox ); // ad // ad // ad // adicionaicionaicionaiciona caixa de seleçcaixa de seleçcaixa de seleçcaixa de seleção para negrito aão para negrito aão para negrito aão para negrito a JFrame JFrame JFrame JFrame
31 add( italicJCheckBox ); add( italicJCheckBox ); add( italicJCheckBox ); add( italicJCheckBox ); // ad// ad// ad// adicionaicionaicionaiciona caixa de seleção para negrito caixa de seleção para negrito caixa de seleção para negrito caixa de seleção para negrito aaaa JFrame JFrame JFrame JFrame
32
33 // regist// regist// regist// registrararara listenerslistenerslistenerslisteners para para para para JCheckBoxes JCheckBoxes JCheckBoxes JCheckBoxes
34 CheckBoxHandler handler = CheckBoxHandler handler = CheckBoxHandler handler = CheckBoxHandler handler = newnewnewnew CheckBoxHandler(); CheckBoxHandler(); CheckBoxHandler(); CheckBoxHandler();
35 boldJCheckBox.addItemListener( handler );boldJCheckBox.addItemListener( handler );boldJCheckBox.addItemListener( handler );boldJCheckBox.addItemListener( handler );
36 italicJCheckBox.addItemListener( handler );italicJCheckBox.addItemListener( handler );italicJCheckBox.addItemListener( handler );italicJCheckBox.addItemListener( handler );
37
Cria dois JCheckBoxes
Cria um handler de evento
Celso Olivete Júnior 98
37 } } } } // // // // fim do construtorfim do construtorfim do construtorfim do construtor CheckBoxFrame CheckBoxFrame CheckBoxFrame CheckBoxFrame
38
39 // // // // classe interna private para tratamento de evento ItemListenerclasse interna private para tratamento de evento ItemListenerclasse interna private para tratamento de evento ItemListenerclasse interna private para tratamento de evento ItemListener
40 privateprivateprivateprivate classclassclassclass CheckBoxHandler CheckBoxHandler CheckBoxHandler CheckBoxHandler implementsimplementsimplementsimplements ItemListener ItemListener ItemListener ItemListener
41 { { { {
42 privateprivateprivateprivate intintintint valBold = valBold = valBold = valBold = Font.PLAINFont.PLAINFont.PLAINFont.PLAIN; ; ; ; // // // // controla o estilo de fonte negritocontrola o estilo de fonte negritocontrola o estilo de fonte negritocontrola o estilo de fonte negrito
43 privateprivateprivateprivate intintintint valItalic = valItalic = valItalic = valItalic = Font.PLAINFont.PLAINFont.PLAINFont.PLAIN; ; ; ; // // // // controla o estilo de fonte controla o estilo de fonte controla o estilo de fonte controla o estilo de fonte itálicoitálicoitálicoitálico
44
45 // respond// respond// respond// responde aos eventos de caixa de seleçãoe aos eventos de caixa de seleçãoe aos eventos de caixa de seleçãoe aos eventos de caixa de seleção
46 publicpublicpublicpublic voidvoidvoidvoid itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event )
47 { { { {
48 // process // process // process // processa a a a aos aos aos aos eventos de caixa de seleçeventos de caixa de seleçeventos de caixa de seleçeventos de caixa de seleção de negritoão de negritoão de negritoão de negrito
49 ifififif ( ( ( ( event.getSource() == boldJCheckBoxevent.getSource() == boldJCheckBoxevent.getSource() == boldJCheckBoxevent.getSource() == boldJCheckBox ) ) ) )
50 valBold = valBold = valBold = valBold =
51 boldJCheckBoboldJCheckBoboldJCheckBoboldJCheckBox.isSelected()x.isSelected()x.isSelected()x.isSelected() ? ? ? ? Font.BOLDFont.BOLDFont.BOLDFont.BOLD : : : : Font.PLAINFont.PLAINFont.PLAINFont.PLAIN;;;;
52
Introdução à Tecnologia Java – 02/2012
Exemplo28 boldJCheckBox = boldJCheckBox = boldJCheckBox = boldJCheckBox = newnewnewnew JCheckBox( JCheckBox( JCheckBox( JCheckBox( "Bold""Bold""Bold""Bold" ); ); ); ); // // // // cria caixa de seleção de negritocria caixa de seleção de negritocria caixa de seleção de negritocria caixa de seleção de negrito
29 italicJCheckBox = italicJCheckBox = italicJCheckBox = italicJCheckBox = newnewnewnew JCheckBox( JCheckBox( JCheckBox( JCheckBox( "Italic""Italic""Italic""Italic" ); ); ); ); // cr// cr// cr// criaiaiaia it it it itáááállllicoicoicoico
30 add( boldJCheckBox ); add( boldJCheckBox ); add( boldJCheckBox ); add( boldJCheckBox ); // ad // ad // ad // adicionaicionaicionaiciona caixa de seleçcaixa de seleçcaixa de seleçcaixa de seleção para negrito aão para negrito aão para negrito aão para negrito a JFrame JFrame JFrame JFrame
31 add( italicJCheckBox ); add( italicJCheckBox ); add( italicJCheckBox ); add( italicJCheckBox ); // ad// ad// ad// adicionaicionaicionaiciona caixa de seleção para negrito caixa de seleção para negrito caixa de seleção para negrito caixa de seleção para negrito aaaa JFrame JFrame JFrame JFrame
32
33 // regist// regist// regist// registrararara listenerslistenerslistenerslisteners para para para para JCheckBoxes JCheckBoxes JCheckBoxes JCheckBoxes
34 CheckBoxHandler handler = CheckBoxHandler handler = CheckBoxHandler handler = CheckBoxHandler handler = newnewnewnew CheckBoxHandler(); CheckBoxHandler(); CheckBoxHandler(); CheckBoxHandler();
35 boldJCheckBox.addItemListener( handler );boldJCheckBox.addItemListener( handler );boldJCheckBox.addItemListener( handler );boldJCheckBox.addItemListener( handler );
36 italicJCheckBox.addItemListener( handler );italicJCheckBox.addItemListener( handler );italicJCheckBox.addItemListener( handler );italicJCheckBox.addItemListener( handler );
37
Cria dois JCheckBoxes
Cria um handler de evento
Registra um handler de evento com
Celso Olivete Júnior 99
37 } } } } // // // // fim do construtorfim do construtorfim do construtorfim do construtor CheckBoxFrame CheckBoxFrame CheckBoxFrame CheckBoxFrame
38
39 // // // // classe interna private para tratamento de evento ItemListenerclasse interna private para tratamento de evento ItemListenerclasse interna private para tratamento de evento ItemListenerclasse interna private para tratamento de evento ItemListener
40 privateprivateprivateprivate classclassclassclass CheckBoxHandler CheckBoxHandler CheckBoxHandler CheckBoxHandler implementsimplementsimplementsimplements ItemListener ItemListener ItemListener ItemListener
41 { { { {
42 privateprivateprivateprivate intintintint valBold = valBold = valBold = valBold = Font.PLAINFont.PLAINFont.PLAINFont.PLAIN; ; ; ; // // // // controla o estilo de fonte negritocontrola o estilo de fonte negritocontrola o estilo de fonte negritocontrola o estilo de fonte negrito
43 privateprivateprivateprivate intintintint valItalic = valItalic = valItalic = valItalic = Font.PLAINFont.PLAINFont.PLAINFont.PLAIN; ; ; ; // // // // controla o estilo de fonte controla o estilo de fonte controla o estilo de fonte controla o estilo de fonte itálicoitálicoitálicoitálico
44
45 // respond// respond// respond// responde aos eventos de caixa de seleçãoe aos eventos de caixa de seleçãoe aos eventos de caixa de seleçãoe aos eventos de caixa de seleção
46 publicpublicpublicpublic voidvoidvoidvoid itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event )
47 { { { {
48 // process // process // process // processa a a a aos aos aos aos eventos de caixa de seleçeventos de caixa de seleçeventos de caixa de seleçeventos de caixa de seleção de negritoão de negritoão de negritoão de negrito
49 ifififif ( ( ( ( event.getSource() == boldJCheckBoxevent.getSource() == boldJCheckBoxevent.getSource() == boldJCheckBoxevent.getSource() == boldJCheckBox ) ) ) )
50 valBold = valBold = valBold = valBold =
51 boldJCheckBoboldJCheckBoboldJCheckBoboldJCheckBox.isSelected()x.isSelected()x.isSelected()x.isSelected() ? ? ? ? Font.BOLDFont.BOLDFont.BOLDFont.BOLD : : : : Font.PLAINFont.PLAINFont.PLAINFont.PLAIN;;;;
52
Registra um handler de evento com
JCheckBoxes
Introdução à Tecnologia Java – 02/2012
Exemplo28 boldJCheckBox = boldJCheckBox = boldJCheckBox = boldJCheckBox = newnewnewnew JCheckBox( JCheckBox( JCheckBox( JCheckBox( "Bold""Bold""Bold""Bold" ); ); ); ); // // // // cria caixa de seleção de negritocria caixa de seleção de negritocria caixa de seleção de negritocria caixa de seleção de negrito
29 italicJCheckBox = italicJCheckBox = italicJCheckBox = italicJCheckBox = newnewnewnew JCheckBox( JCheckBox( JCheckBox( JCheckBox( "Italic""Italic""Italic""Italic" ); ); ); ); // cr// cr// cr// criaiaiaia it it it itáááállllicoicoicoico
30 add( boldJCheckBox ); add( boldJCheckBox ); add( boldJCheckBox ); add( boldJCheckBox ); // ad // ad // ad // adicionaicionaicionaiciona caixa de seleçcaixa de seleçcaixa de seleçcaixa de seleção para negrito aão para negrito aão para negrito aão para negrito a JFrame JFrame JFrame JFrame
31 add( italicJCheckBox ); add( italicJCheckBox ); add( italicJCheckBox ); add( italicJCheckBox ); // ad// ad// ad// adicionaicionaicionaiciona caixa de seleção para negrito caixa de seleção para negrito caixa de seleção para negrito caixa de seleção para negrito aaaa JFrame JFrame JFrame JFrame
32
33 // regist// regist// regist// registrararara listenerslistenerslistenerslisteners para para para para JCheckBoxes JCheckBoxes JCheckBoxes JCheckBoxes
34 CheckBoxHandler handler = CheckBoxHandler handler = CheckBoxHandler handler = CheckBoxHandler handler = newnewnewnew CheckBoxHandler(); CheckBoxHandler(); CheckBoxHandler(); CheckBoxHandler();
35 boldJCheckBox.addItemListener( handler );boldJCheckBox.addItemListener( handler );boldJCheckBox.addItemListener( handler );boldJCheckBox.addItemListener( handler );
36 italicJCheckBox.addItemListener( handler );italicJCheckBox.addItemListener( handler );italicJCheckBox.addItemListener( handler );italicJCheckBox.addItemListener( handler );
37
Cria dois JCheckBoxes
Cria um handler de evento
Registra um handler de evento com
Celso Olivete Júnior 100
37 } } } } // // // // fim do construtorfim do construtorfim do construtorfim do construtor CheckBoxFrame CheckBoxFrame CheckBoxFrame CheckBoxFrame
38
39 // // // // classe interna private para tratamento de evento ItemListenerclasse interna private para tratamento de evento ItemListenerclasse interna private para tratamento de evento ItemListenerclasse interna private para tratamento de evento ItemListener
40 privateprivateprivateprivate classclassclassclass CheckBoxHandler CheckBoxHandler CheckBoxHandler CheckBoxHandler implementsimplementsimplementsimplements ItemListener ItemListener ItemListener ItemListener
41 { { { {
42 privateprivateprivateprivate intintintint valBold = valBold = valBold = valBold = Font.PLAINFont.PLAINFont.PLAINFont.PLAIN; ; ; ; // // // // controla o estilo de fonte negritocontrola o estilo de fonte negritocontrola o estilo de fonte negritocontrola o estilo de fonte negrito
43 privateprivateprivateprivate intintintint valItalic = valItalic = valItalic = valItalic = Font.PLAINFont.PLAINFont.PLAINFont.PLAIN; ; ; ; // // // // controla o estilo de fonte controla o estilo de fonte controla o estilo de fonte controla o estilo de fonte itálicoitálicoitálicoitálico
44
45 // respond// respond// respond// responde aos eventos de caixa de seleçãoe aos eventos de caixa de seleçãoe aos eventos de caixa de seleçãoe aos eventos de caixa de seleção
46 publicpublicpublicpublic voidvoidvoidvoid itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event )
47 { { { {
48 // process // process // process // processa a a a aos aos aos aos eventos de caixa de seleçeventos de caixa de seleçeventos de caixa de seleçeventos de caixa de seleção de negritoão de negritoão de negritoão de negrito
49 ifififif ( ( ( ( event.getSource() == boldJCheckBoxevent.getSource() == boldJCheckBoxevent.getSource() == boldJCheckBoxevent.getSource() == boldJCheckBox ) ) ) )
50 valBold = valBold = valBold = valBold =
51 boldJCheckBoboldJCheckBoboldJCheckBoboldJCheckBox.isSelected()x.isSelected()x.isSelected()x.isSelected() ? ? ? ? Font.BOLDFont.BOLDFont.BOLDFont.BOLD : : : : Font.PLAINFont.PLAINFont.PLAINFont.PLAIN;;;;
52
Registra um handler de evento com
JCheckBoxes
A classe interna implementa
ItemListener
Introdução à Tecnologia Java – 02/2012
Exemplo28 boldJCheckBox = boldJCheckBox = boldJCheckBox = boldJCheckBox = newnewnewnew JCheckBox( JCheckBox( JCheckBox( JCheckBox( "Bold""Bold""Bold""Bold" ); ); ); ); // // // // cria caixa de seleção de negritocria caixa de seleção de negritocria caixa de seleção de negritocria caixa de seleção de negrito
29 italicJCheckBox = italicJCheckBox = italicJCheckBox = italicJCheckBox = newnewnewnew JCheckBox( JCheckBox( JCheckBox( JCheckBox( "Italic""Italic""Italic""Italic" ); ); ); ); // cr// cr// cr// criaiaiaia it it it itáááállllicoicoicoico
30 add( boldJCheckBox ); add( boldJCheckBox ); add( boldJCheckBox ); add( boldJCheckBox ); // ad // ad // ad // adicionaicionaicionaiciona caixa de seleçcaixa de seleçcaixa de seleçcaixa de seleção para negrito aão para negrito aão para negrito aão para negrito a JFrame JFrame JFrame JFrame
31 add( italicJCheckBox ); add( italicJCheckBox ); add( italicJCheckBox ); add( italicJCheckBox ); // ad// ad// ad// adicionaicionaicionaiciona caixa de seleção para negrito caixa de seleção para negrito caixa de seleção para negrito caixa de seleção para negrito aaaa JFrame JFrame JFrame JFrame
32
33 // regist// regist// regist// registrararara listenerslistenerslistenerslisteners para para para para JCheckBoxes JCheckBoxes JCheckBoxes JCheckBoxes
34 CheckBoxHandler handler = CheckBoxHandler handler = CheckBoxHandler handler = CheckBoxHandler handler = newnewnewnew CheckBoxHandler(); CheckBoxHandler(); CheckBoxHandler(); CheckBoxHandler();
35 boldJCheckBox.addItemListener( handler );boldJCheckBox.addItemListener( handler );boldJCheckBox.addItemListener( handler );boldJCheckBox.addItemListener( handler );
36 italicJCheckBox.addItemListener( handler );italicJCheckBox.addItemListener( handler );italicJCheckBox.addItemListener( handler );italicJCheckBox.addItemListener( handler );
37
Cria dois JCheckBoxes
Cria um handler de evento
Registra um handler de evento com
Celso Olivete Júnior 101
37 } } } } // // // // fim do construtorfim do construtorfim do construtorfim do construtor CheckBoxFrame CheckBoxFrame CheckBoxFrame CheckBoxFrame
38
39 // // // // classe interna private para tratamento de evento ItemListenerclasse interna private para tratamento de evento ItemListenerclasse interna private para tratamento de evento ItemListenerclasse interna private para tratamento de evento ItemListener
40 privateprivateprivateprivate classclassclassclass CheckBoxHandler CheckBoxHandler CheckBoxHandler CheckBoxHandler implementsimplementsimplementsimplements ItemListener ItemListener ItemListener ItemListener
41 { { { {
42 privateprivateprivateprivate intintintint valBold = valBold = valBold = valBold = Font.PLAINFont.PLAINFont.PLAINFont.PLAIN; ; ; ; // // // // controla o estilo de fonte negritocontrola o estilo de fonte negritocontrola o estilo de fonte negritocontrola o estilo de fonte negrito
43 privateprivateprivateprivate intintintint valItalic = valItalic = valItalic = valItalic = Font.PLAINFont.PLAINFont.PLAINFont.PLAIN; ; ; ; // // // // controla o estilo de fonte controla o estilo de fonte controla o estilo de fonte controla o estilo de fonte itálicoitálicoitálicoitálico
44
45 // respond// respond// respond// responde aos eventos de caixa de seleçãoe aos eventos de caixa de seleçãoe aos eventos de caixa de seleçãoe aos eventos de caixa de seleção
46 publicpublicpublicpublic voidvoidvoidvoid itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event )
47 { { { {
48 // process // process // process // processa a a a aos aos aos aos eventos de caixa de seleçeventos de caixa de seleçeventos de caixa de seleçeventos de caixa de seleção de negritoão de negritoão de negritoão de negrito
49 ifififif ( ( ( ( event.getSource() == boldJCheckBoxevent.getSource() == boldJCheckBoxevent.getSource() == boldJCheckBoxevent.getSource() == boldJCheckBox ) ) ) )
50 valBold = valBold = valBold = valBold =
51 boldJCheckBoboldJCheckBoboldJCheckBoboldJCheckBox.isSelected()x.isSelected()x.isSelected()x.isSelected() ? ? ? ? Font.BOLDFont.BOLDFont.BOLDFont.BOLD : : : : Font.PLAINFont.PLAINFont.PLAINFont.PLAIN;;;;
52
Registra um handler de evento com
JCheckBoxes
A classe interna implementa
ItemListener
O método itemStateChangedé chamado quando uma
JCheckBox é clicada
Introdução à Tecnologia Java – 02/2012
Exemplo28 boldJCheckBox = boldJCheckBox = boldJCheckBox = boldJCheckBox = newnewnewnew JCheckBox( JCheckBox( JCheckBox( JCheckBox( "Bold""Bold""Bold""Bold" ); ); ); ); // // // // cria caixa de seleção de negritocria caixa de seleção de negritocria caixa de seleção de negritocria caixa de seleção de negrito
29 italicJCheckBox = italicJCheckBox = italicJCheckBox = italicJCheckBox = newnewnewnew JCheckBox( JCheckBox( JCheckBox( JCheckBox( "Italic""Italic""Italic""Italic" ); ); ); ); // cr// cr// cr// criaiaiaia it it it itáááállllicoicoicoico
30 add( boldJCheckBox ); add( boldJCheckBox ); add( boldJCheckBox ); add( boldJCheckBox ); // ad // ad // ad // adicionaicionaicionaiciona caixa de seleçcaixa de seleçcaixa de seleçcaixa de seleção para negrito aão para negrito aão para negrito aão para negrito a JFrame JFrame JFrame JFrame
31 add( italicJCheckBox ); add( italicJCheckBox ); add( italicJCheckBox ); add( italicJCheckBox ); // ad// ad// ad// adicionaicionaicionaiciona caixa de seleção para negrito caixa de seleção para negrito caixa de seleção para negrito caixa de seleção para negrito aaaa JFrame JFrame JFrame JFrame
32
33 // regist// regist// regist// registrararara listenerslistenerslistenerslisteners para para para para JCheckBoxes JCheckBoxes JCheckBoxes JCheckBoxes
34 CheckBoxHandler handler = CheckBoxHandler handler = CheckBoxHandler handler = CheckBoxHandler handler = newnewnewnew CheckBoxHandler(); CheckBoxHandler(); CheckBoxHandler(); CheckBoxHandler();
35 boldJCheckBox.addItemListener( handler );boldJCheckBox.addItemListener( handler );boldJCheckBox.addItemListener( handler );boldJCheckBox.addItemListener( handler );
36 italicJCheckBox.addItemListener( handler );italicJCheckBox.addItemListener( handler );italicJCheckBox.addItemListener( handler );italicJCheckBox.addItemListener( handler );
37
Cria dois JCheckBoxes
Cria um handler de evento
Registra um handler de evento com
Celso Olivete Júnior 102
37 } } } } // // // // fim do construtorfim do construtorfim do construtorfim do construtor CheckBoxFrame CheckBoxFrame CheckBoxFrame CheckBoxFrame
38
39 // // // // classe interna private para tratamento de evento ItemListenerclasse interna private para tratamento de evento ItemListenerclasse interna private para tratamento de evento ItemListenerclasse interna private para tratamento de evento ItemListener
40 privateprivateprivateprivate classclassclassclass CheckBoxHandler CheckBoxHandler CheckBoxHandler CheckBoxHandler implementsimplementsimplementsimplements ItemListener ItemListener ItemListener ItemListener
41 { { { {
42 privateprivateprivateprivate intintintint valBold = valBold = valBold = valBold = Font.PLAINFont.PLAINFont.PLAINFont.PLAIN; ; ; ; // // // // controla o estilo de fonte negritocontrola o estilo de fonte negritocontrola o estilo de fonte negritocontrola o estilo de fonte negrito
43 privateprivateprivateprivate intintintint valItalic = valItalic = valItalic = valItalic = Font.PLAINFont.PLAINFont.PLAINFont.PLAIN; ; ; ; // // // // controla o estilo de fonte controla o estilo de fonte controla o estilo de fonte controla o estilo de fonte itálicoitálicoitálicoitálico
44
45 // respond// respond// respond// responde aos eventos de caixa de seleçãoe aos eventos de caixa de seleçãoe aos eventos de caixa de seleçãoe aos eventos de caixa de seleção
46 publicpublicpublicpublic voidvoidvoidvoid itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event )
47 { { { {
48 // process // process // process // processa a a a aos aos aos aos eventos de caixa de seleçeventos de caixa de seleçeventos de caixa de seleçeventos de caixa de seleção de negritoão de negritoão de negritoão de negrito
49 ifififif ( ( ( ( event.getSource() == boldJCheckBoxevent.getSource() == boldJCheckBoxevent.getSource() == boldJCheckBoxevent.getSource() == boldJCheckBox ) ) ) )
50 valBold = valBold = valBold = valBold =
51 boldJCheckBoboldJCheckBoboldJCheckBoboldJCheckBox.isSelected()x.isSelected()x.isSelected()x.isSelected() ? ? ? ? Font.BOLDFont.BOLDFont.BOLDFont.BOLD : : : : Font.PLAINFont.PLAINFont.PLAINFont.PLAIN;;;;
52
Registra um handler de evento com
JCheckBoxes
A classe interna implementa
ItemListener
O método itemStateChangedé chamado quando uma
JCheckBox é clicada
Testa se JCheckBox está
selecionada
Introdução à Tecnologia Java – 02/2012
Exemplo53 // process // process // process // processa eventos de caixa de seleça eventos de caixa de seleça eventos de caixa de seleça eventos de caixa de seleção de ão de ão de ão de ititititááááliclicliclicoooo
54 ifififif ( ( ( ( event.getSource() == italicJCheckBoxevent.getSource() == italicJCheckBoxevent.getSource() == italicJCheckBoxevent.getSource() == italicJCheckBox ) ) ) )
55 valItalic = valItalic = valItalic = valItalic =
56 italicJCheckBox.isSelected()italicJCheckBox.isSelected()italicJCheckBox.isSelected()italicJCheckBox.isSelected() ? ? ? ? Font.ITALICFont.ITALICFont.ITALICFont.ITALIC : : : : Font.PLAINFont.PLAINFont.PLAINFont.PLAIN;;;;
57
58 // // // // cccconfigura onfigura onfigura onfigura fonte do fonte do fonte do fonte do campo de textocampo de textocampo de textocampo de texto
59 textField.setFont( textField.setFont( textField.setFont( textField.setFont(
60 newnewnewnew Font( Font( Font( Font( "Serif""Serif""Serif""Serif", valBold + valItalic, , valBold + valItalic, , valBold + valItalic, , valBold + valItalic, 14141414 ) ); ) ); ) ); ) );
61 } } } } // // // // fim do métodofim do métodofim do métodofim do método itemStateChangeditemStateChangeditemStateChangeditemStateChanged
Testa a origem do evento
Celso Olivete Júnior 103
61 } } } } // // // // fim do métodofim do métodofim do métodofim do método itemStateChangeditemStateChangeditemStateChangeditemStateChanged
62 } } } } // // // // ffffim da classeim da classeim da classeim da classe CheckBoxHandler CheckBoxHandler CheckBoxHandler CheckBoxHandler interna private interna private interna private interna private
63 } } } } // // // // fim da classefim da classefim da classefim da classe CheckBoxFrameCheckBoxFrameCheckBoxFrameCheckBoxFrame
Introdução à Tecnologia Java – 02/2012
Exemplo53 // process // process // process // processa eventos de caixa de seleça eventos de caixa de seleça eventos de caixa de seleça eventos de caixa de seleção de ão de ão de ão de ititititááááliclicliclicoooo
54 ifififif ( ( ( ( event.getSource() == italicJCheckBoxevent.getSource() == italicJCheckBoxevent.getSource() == italicJCheckBoxevent.getSource() == italicJCheckBox ) ) ) )
55 valItalic = valItalic = valItalic = valItalic =
56 italicJCheckBox.isSelected()italicJCheckBox.isSelected()italicJCheckBox.isSelected()italicJCheckBox.isSelected() ? ? ? ? Font.ITALICFont.ITALICFont.ITALICFont.ITALIC : : : : Font.PLAINFont.PLAINFont.PLAINFont.PLAIN;;;;
57
58 // // // // cccconfigura onfigura onfigura onfigura fonte do fonte do fonte do fonte do campo de textocampo de textocampo de textocampo de texto
59 textField.setFont( textField.setFont( textField.setFont( textField.setFont(
60 newnewnewnew Font( Font( Font( Font( "Serif""Serif""Serif""Serif", valBold + valItalic, , valBold + valItalic, , valBold + valItalic, , valBold + valItalic, 14141414 ) ); ) ); ) ); ) );
61 } } } } // // // // fim do métodofim do métodofim do métodofim do método itemStateChangeditemStateChangeditemStateChangeditemStateChanged
O método isSelected retorna
se JCheckBox está selecionada
Testa a origem do evento
Celso Olivete Júnior 104
61 } } } } // // // // fim do métodofim do métodofim do métodofim do método itemStateChangeditemStateChangeditemStateChangeditemStateChanged
62 } } } } // // // // ffffim da classeim da classeim da classeim da classe CheckBoxHandler CheckBoxHandler CheckBoxHandler CheckBoxHandler interna private interna private interna private interna private
63 } } } } // // // // fim da classefim da classefim da classefim da classe CheckBoxFrameCheckBoxFrameCheckBoxFrameCheckBoxFrame
Introdução à Tecnologia Java – 02/2012
Exemplo 1 // Fig. 11.18: CheckBoxTest.java// Fig. 11.18: CheckBoxTest.java// Fig. 11.18: CheckBoxTest.java// Fig. 11.18: CheckBoxTest.java
2 // Test// Test// Test// Testandoandoandoando CheckBoxFrame. CheckBoxFrame. CheckBoxFrame. CheckBoxFrame.
3 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
4
5 publicpublicpublicpublic classclassclassclass CheckBoxTest CheckBoxTest CheckBoxTest CheckBoxTest
6 {{{{
7 public static voidpublic static voidpublic static voidpublic static void main( String args[] ) main( String args[] ) main( String args[] ) main( String args[] )
8 { { { {
9 CheckBoxFrame checkBoxFrame = CheckBoxFrame checkBoxFrame = CheckBoxFrame checkBoxFrame = CheckBoxFrame checkBoxFrame = newnewnewnew CheckBoxFrame() CheckBoxFrame() CheckBoxFrame() CheckBoxFrame(); ; ; ;
10 checkBoxFrame.setDefaultCloseOperation( checkBoxFrame.setDefaultCloseOperation( checkBoxFrame.setDefaultCloseOperation( checkBoxFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSE ); ); ); );
Celso Olivete Júnior 105
10 checkBoxFrame.setDefaultCloseOperation( checkBoxFrame.setDefaultCloseOperation( checkBoxFrame.setDefaultCloseOperation( checkBoxFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSE ); ); ); );
11 checkBoxFrame.setSize( checkBoxFrame.setSize( checkBoxFrame.setSize( checkBoxFrame.setSize( 275275275275, , , , 100100100100 ); ); ); ); // // // // configura o tamanho do configura o tamanho do configura o tamanho do configura o tamanho do frameframeframeframe
12 checkBoxFrame.setVisible( checkBoxFrame.setVisible( checkBoxFrame.setVisible( checkBoxFrame.setVisible( truetruetruetrue ); ); ); ); // // // // exibe o exibe o exibe o exibe o frameframeframeframe
13 } } } } // // // // fim de mfim de mfim de mfim de mainainainain
14 } } } } // // // // fimfimfimfim da classe da classe da classe da classe CheckBoxTest CheckBoxTest CheckBoxTest CheckBoxTest
Introdução à Tecnologia Java – 02/2012
JRadioButton
• JRadioButton:•Tem dois estados – selecionado e não selecionado.
•Normalmente aparece em um grupo no qual somenteum botão de opção pode ser selecionado de cada vez.um botão de opção pode ser selecionado de cada vez.
•Grupo mantido por um objeto ButtonGroup.•Declara o método add para adicionar um JRadioButton aogrupo.
•Normalmente, representa opções mutuamenteexclusivas.
Celso Olivete Júnior 106
Introdução à Tecnologia Java – 02/2012
Exemplo 1 // Fig. 11.19: RadioButtonFrame.java// Fig. 11.19: RadioButtonFrame.java// Fig. 11.19: RadioButtonFrame.java// Fig. 11.19: RadioButtonFrame.java
2 // // // // Criando botões de opção utilizando ButtonGroup e JRadioButtonCriando botões de opção utilizando ButtonGroup e JRadioButtonCriando botões de opção utilizando ButtonGroup e JRadioButtonCriando botões de opção utilizando ButtonGroup e JRadioButton....
3 importimportimportimport java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout;
4 importimportimportimport java.awt.Font; java.awt.Font; java.awt.Font; java.awt.Font;
5 importimportimportimport java.awt.event.ItemListener; java.awt.event.ItemListener; java.awt.event.ItemListener; java.awt.event.ItemListener;
6 importimportimportimport java.awt.event.ItemEvent; java.awt.event.ItemEvent; java.awt.event.ItemEvent; java.awt.event.ItemEvent;
7 importimportimportimport javax.swing.JFrame;javax.swing.JFrame;javax.swing.JFrame;javax.swing.JFrame;
8 importimportimportimport javax.swing.JTextField; javax.swing.JTextField; javax.swing.JTextField; javax.swing.JTextField;
9 importimportimportimport javax.swing.JRadioButton; javax.swing.JRadioButton; javax.swing.JRadioButton; javax.swing.JRadioButton;
10 importimportimportimport javax.swing.ButtonGroup; javax.swing.ButtonGroup; javax.swing.ButtonGroup; javax.swing.ButtonGroup;
Celso Olivete Júnior 107
10 importimportimportimport javax.swing.ButtonGroup; javax.swing.ButtonGroup; javax.swing.ButtonGroup; javax.swing.ButtonGroup;
11
12 publicpublicpublicpublic classclassclassclass RadioButtonFrame RadioButtonFrame RadioButtonFrame RadioButtonFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
13 {{{{
14 privateprivateprivateprivate JTextField textField; JTextField textField; JTextField textField; JTextField textField; // us// us// us// usado para exibir alteado para exibir alteado para exibir alteado para exibir alterações de fonterações de fonterações de fonterações de fonte
15 privateprivateprivateprivate Font plainFont; Font plainFont; Font plainFont; Font plainFont; // font// font// font// fonte para texto simplese para texto simplese para texto simplese para texto simples
16 privateprivateprivateprivate Font boldFont; Font boldFont; Font boldFont; Font boldFont; // font// font// font// fonte para texto e para texto e para texto e para texto negritonegritonegritonegrito
17 privateprivateprivateprivate Font italicFont; Font italicFont; Font italicFont; Font italicFont; // font // font // font // fonte para texto itálicoe para texto itálicoe para texto itálicoe para texto itálico
18 privateprivateprivateprivate Font boldItalicFont; Font boldItalicFont; Font boldItalicFont; Font boldItalicFont; // font// font// font// fonteeee para texto negpara texto negpara texto negpara texto negrito e irito e irito e irito e itálicotálicotálicotálico
19 privateprivateprivateprivate JRadioButton plainJRadioButton; JRadioButton plainJRadioButton; JRadioButton plainJRadioButton; JRadioButton plainJRadioButton; // selec// selec// selec// seleciona texto simplesiona texto simplesiona texto simplesiona texto simples
20 privateprivateprivateprivate JRadioButton boldJRadioButton; JRadioButton boldJRadioButton; JRadioButton boldJRadioButton; JRadioButton boldJRadioButton; // sele// sele// sele// seleciona texto negritociona texto negritociona texto negritociona texto negrito
21 privateprivateprivateprivate JRadioButton italicJRadioButton; JRadioButton italicJRadioButton; JRadioButton italicJRadioButton; JRadioButton italicJRadioButton; // selec// selec// selec// seleciona texto itálicoiona texto itálicoiona texto itálicoiona texto itálico
22 privateprivateprivateprivate JRadioButton boldItalicJRadioButton; JRadioButton boldItalicJRadioButton; JRadioButton boldItalicJRadioButton; JRadioButton boldItalicJRadioButton; // // // // negrito e itáliconegrito e itáliconegrito e itáliconegrito e itálico
23 privateprivateprivateprivate ButtonGroup radioGroup; ButtonGroup radioGroup; ButtonGroup radioGroup; ButtonGroup radioGroup; // // // // buttongroup para armazenar botões de opçãobuttongroup para armazenar botões de opçãobuttongroup para armazenar botões de opçãobuttongroup para armazenar botões de opção
24
Introdução à Tecnologia Java – 02/2012
Exemplo 1 // Fig. 11.19: RadioButtonFrame.java// Fig. 11.19: RadioButtonFrame.java// Fig. 11.19: RadioButtonFrame.java// Fig. 11.19: RadioButtonFrame.java
2 // // // // Criando botões de opção utilizando ButtonGroup e JRadioButtonCriando botões de opção utilizando ButtonGroup e JRadioButtonCriando botões de opção utilizando ButtonGroup e JRadioButtonCriando botões de opção utilizando ButtonGroup e JRadioButton....
3 importimportimportimport java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout;
4 importimportimportimport java.awt.Font; java.awt.Font; java.awt.Font; java.awt.Font;
5 importimportimportimport java.awt.event.ItemListener; java.awt.event.ItemListener; java.awt.event.ItemListener; java.awt.event.ItemListener;
6 importimportimportimport java.awt.event.ItemEvent; java.awt.event.ItemEvent; java.awt.event.ItemEvent; java.awt.event.ItemEvent;
7 importimportimportimport javax.swing.JFrame;javax.swing.JFrame;javax.swing.JFrame;javax.swing.JFrame;
8 importimportimportimport javax.swing.JTextField; javax.swing.JTextField; javax.swing.JTextField; javax.swing.JTextField;
9 importimportimportimport javax.swing.JRadioButton; javax.swing.JRadioButton; javax.swing.JRadioButton; javax.swing.JRadioButton;
10 importimportimportimport javax.swing.ButtonGroup; javax.swing.ButtonGroup; javax.swing.ButtonGroup; javax.swing.ButtonGroup;
Celso Olivete Júnior 108
10 importimportimportimport javax.swing.ButtonGroup; javax.swing.ButtonGroup; javax.swing.ButtonGroup; javax.swing.ButtonGroup;
11
12 publicpublicpublicpublic classclassclassclass RadioButtonFrame RadioButtonFrame RadioButtonFrame RadioButtonFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
13 {{{{
14 privateprivateprivateprivate JTextField textField; JTextField textField; JTextField textField; JTextField textField; // us// us// us// usado para exibir alteado para exibir alteado para exibir alteado para exibir alterações de fonterações de fonterações de fonterações de fonte
15 privateprivateprivateprivate Font plainFont; Font plainFont; Font plainFont; Font plainFont; // font// font// font// fonte para texto simplese para texto simplese para texto simplese para texto simples
16 privateprivateprivateprivate Font boldFont; Font boldFont; Font boldFont; Font boldFont; // font// font// font// fonte para texto e para texto e para texto e para texto negritonegritonegritonegrito
17 privateprivateprivateprivate Font italicFont; Font italicFont; Font italicFont; Font italicFont; // font // font // font // fonte para texto itálicoe para texto itálicoe para texto itálicoe para texto itálico
18 privateprivateprivateprivate Font boldItalicFont; Font boldItalicFont; Font boldItalicFont; Font boldItalicFont; // font// font// font// fonteeee para texto negpara texto negpara texto negpara texto negrito e irito e irito e irito e itálicotálicotálicotálico
19 privateprivateprivateprivate JRadioButton plainJRadioButton; JRadioButton plainJRadioButton; JRadioButton plainJRadioButton; JRadioButton plainJRadioButton; // selec// selec// selec// seleciona texto simplesiona texto simplesiona texto simplesiona texto simples
20 privateprivateprivateprivate JRadioButton boldJRadioButton; JRadioButton boldJRadioButton; JRadioButton boldJRadioButton; JRadioButton boldJRadioButton; // sele// sele// sele// seleciona texto negritociona texto negritociona texto negritociona texto negrito
21 privateprivateprivateprivate JRadioButton italicJRadioButton; JRadioButton italicJRadioButton; JRadioButton italicJRadioButton; JRadioButton italicJRadioButton; // selec// selec// selec// seleciona texto itálicoiona texto itálicoiona texto itálicoiona texto itálico
22 privateprivateprivateprivate JRadioButton boldItalicJRadioButton; JRadioButton boldItalicJRadioButton; JRadioButton boldItalicJRadioButton; JRadioButton boldItalicJRadioButton; // // // // negrito e itáliconegrito e itáliconegrito e itáliconegrito e itálico
23 privateprivateprivateprivate ButtonGroup radioGroup; ButtonGroup radioGroup; ButtonGroup radioGroup; ButtonGroup radioGroup; // // // // buttongroup para armazenar botões de opçãobuttongroup para armazenar botões de opçãobuttongroup para armazenar botões de opçãobuttongroup para armazenar botões de opção
24
Declara quatro JRadioButtonse um ButtonGroup para
gerenciá-los
Introdução à Tecnologia Java – 02/2012
Exemplo25 // construtor RadioButtonFrame adiciona JRadioButtons ao Jframe // construtor RadioButtonFrame adiciona JRadioButtons ao Jframe // construtor RadioButtonFrame adiciona JRadioButtons ao Jframe // construtor RadioButtonFrame adiciona JRadioButtons ao Jframe
26 publicpublicpublicpublic RadioButtonFrame() RadioButtonFrame() RadioButtonFrame() RadioButtonFrame()
27 { { { {
28 supersupersupersuper( ( ( ( "RadioButton Test""RadioButton Test""RadioButton Test""RadioButton Test" ); ); ); );
29 setLayout( setLayout( setLayout( setLayout( newnewnewnew FlowLayout() ); FlowLayout() ); FlowLayout() ); FlowLayout() ); // configura layout do frame// configura layout do frame// configura layout do frame// configura layout do frame
30
31 textField = textField = textField = textField = nnnnewewewew JTextField( JTextField( JTextField( JTextField( "Watch the font style change""Watch the font style change""Watch the font style change""Watch the font style change", , , , 25252525 ); ); ); );
32 add( textField ); add( textField ); add( textField ); add( textField ); // adiciona textField ao JFrame// adiciona textField ao JFrame// adiciona textField ao JFrame// adiciona textField ao JFrame
33
34 // cria botões de opçã // cria botões de opçã // cria botões de opçã // cria botões de opçãoooo
35 plainJRadioButton = plainJRadioButton = plainJRadioButton = plainJRadioButton = newnewnewnew JRadioButton( JRadioButton( JRadioButton( JRadioButton( "Plain""Plain""Plain""Plain", , , , truetruetruetrue ); ); ); );
Celso Olivete Júnior 109
35 plainJRadioButton = plainJRadioButton = plainJRadioButton = plainJRadioButton = newnewnewnew JRadioButton( JRadioButton( JRadioButton( JRadioButton( "Plain""Plain""Plain""Plain", , , , truetruetruetrue ); ); ); );
36 boldJRadioButboldJRadioButboldJRadioButboldJRadioButton = ton = ton = ton = newnewnewnew JRadioButton( JRadioButton( JRadioButton( JRadioButton( "Bold""Bold""Bold""Bold", , , , falsefalsefalsefalse ); ); ); );
37 italicJRadioButton = italicJRadioButton = italicJRadioButton = italicJRadioButton = newnewnewnew JRadioButton( JRadioButton( JRadioButton( JRadioButton( "Italic""Italic""Italic""Italic", , , , falsefalsefalsefalse ); ); ); );
38 boldItalicJRadioButton = boldItalicJRadioButton = boldItalicJRadioButton = boldItalicJRadioButton = newnewnewnew JRadioButton( JRadioButton( JRadioButton( JRadioButton( "Bold/Italic""Bold/Italic""Bold/Italic""Bold/Italic", , , , falsefalsefalsefalse ); ); ); );
39 add( plainJRadioButton ); add( plainJRadioButton ); add( plainJRadioButton ); add( plainJRadioButton ); // adicio// adicio// adicio// adiciona botão simples ao JFramena botão simples ao JFramena botão simples ao JFramena botão simples ao JFrame
40 add( boldJRadioButton ); add( boldJRadioButton ); add( boldJRadioButton ); add( boldJRadioButton ); // adiciona botão de negrito ao JFrame// adiciona botão de negrito ao JFrame// adiciona botão de negrito ao JFrame// adiciona botão de negrito ao JFrame
41 add( italicJRadioButton ); add( italicJRadioButton ); add( italicJRadioButton ); add( italicJRadioButton ); // adiciona botão // adiciona botão // adiciona botão // adiciona botão de de de de itálico itálico itálico itálico aoaoaoao JFrame JFrame JFrame JFrame
42 add( boldItalicJRadioButton ); add( boldItalicJRadioButton ); add( boldItalicJRadioButton ); add( boldItalicJRadioButton ); // adiciona botão de itálico e ne// adiciona botão de itálico e ne// adiciona botão de itálico e ne// adiciona botão de itálico e negrgrgrgritoitoitoito
43
44 // cria relacionamento lógico entre JRadioButtons// cria relacionamento lógico entre JRadioButtons// cria relacionamento lógico entre JRadioButtons// cria relacionamento lógico entre JRadioButtons
45 radioGroup = radioGroup = radioGroup = radioGroup = newnewnewnew ButtonGroup(); ButtonGroup(); ButtonGroup(); ButtonGroup(); // cr// cr// cr// cria ia ia ia ButtonGroupButtonGroupButtonGroupButtonGroup
46 radioGroup.add( plainJRadioButton ); radioGroup.add( plainJRadioButton ); radioGroup.add( plainJRadioButton ); radioGroup.add( plainJRadioButton ); // adiciona simples ao grupo// adiciona simples ao grupo// adiciona simples ao grupo// adiciona simples ao grupo
47 radioradioradioradioGroup.add( boldJRadioButton ); Group.add( boldJRadioButton ); Group.add( boldJRadioButton ); Group.add( boldJRadioButton ); // adiciona negrito ao g// adiciona negrito ao g// adiciona negrito ao g// adiciona negrito ao gruporuporuporupo
48 radioGroup.add( italicJRadioButton ); radioGroup.add( italicJRadioButton ); radioGroup.add( italicJRadioButton ); radioGroup.add( italicJRadioButton ); // adiciona itálico ao g// adiciona itálico ao g// adiciona itálico ao g// adiciona itálico ao gruporuporuporupo
49 radioGroup.add( boldItalicJRadioButton ); radioGroup.add( boldItalicJRadioButton ); radioGroup.add( boldItalicJRadioButton ); radioGroup.add( boldItalicJRadioButton ); // adiciona negrito e itálico// adiciona negrito e itálico// adiciona negrito e itálico// adiciona negrito e itálico
50
Cria os quatro JRadioButtons
Introdução à Tecnologia Java – 02/2012
Exemplo25 // construtor RadioButtonFrame adiciona JRadioButtons ao Jframe // construtor RadioButtonFrame adiciona JRadioButtons ao Jframe // construtor RadioButtonFrame adiciona JRadioButtons ao Jframe // construtor RadioButtonFrame adiciona JRadioButtons ao Jframe
26 publicpublicpublicpublic RadioButtonFrame() RadioButtonFrame() RadioButtonFrame() RadioButtonFrame()
27 { { { {
28 supersupersupersuper( ( ( ( "RadioButton Test""RadioButton Test""RadioButton Test""RadioButton Test" ); ); ); );
29 setLayout( setLayout( setLayout( setLayout( newnewnewnew FlowLayout() ); FlowLayout() ); FlowLayout() ); FlowLayout() ); // configura layout do frame// configura layout do frame// configura layout do frame// configura layout do frame
30
31 textField = textField = textField = textField = nnnnewewewew JTextField( JTextField( JTextField( JTextField( "Watch the font style change""Watch the font style change""Watch the font style change""Watch the font style change", , , , 25252525 ); ); ); );
32 add( textField ); add( textField ); add( textField ); add( textField ); // adiciona textField ao JFrame// adiciona textField ao JFrame// adiciona textField ao JFrame// adiciona textField ao JFrame
33
34 // cria botões de opçã // cria botões de opçã // cria botões de opçã // cria botões de opçãoooo
35 plainJRadioButton = plainJRadioButton = plainJRadioButton = plainJRadioButton = newnewnewnew JRadioButton( JRadioButton( JRadioButton( JRadioButton( "Plain""Plain""Plain""Plain", , , , truetruetruetrue ); ); ); );
Celso Olivete Júnior 110
35 plainJRadioButton = plainJRadioButton = plainJRadioButton = plainJRadioButton = newnewnewnew JRadioButton( JRadioButton( JRadioButton( JRadioButton( "Plain""Plain""Plain""Plain", , , , truetruetruetrue ); ); ); );
36 boldJRadioButboldJRadioButboldJRadioButboldJRadioButton = ton = ton = ton = newnewnewnew JRadioButton( JRadioButton( JRadioButton( JRadioButton( "Bold""Bold""Bold""Bold", , , , falsefalsefalsefalse ); ); ); );
37 italicJRadioButton = italicJRadioButton = italicJRadioButton = italicJRadioButton = newnewnewnew JRadioButton( JRadioButton( JRadioButton( JRadioButton( "Italic""Italic""Italic""Italic", , , , falsefalsefalsefalse ); ); ); );
38 boldItalicJRadioButton = boldItalicJRadioButton = boldItalicJRadioButton = boldItalicJRadioButton = newnewnewnew JRadioButton( JRadioButton( JRadioButton( JRadioButton( "Bold/Italic""Bold/Italic""Bold/Italic""Bold/Italic", , , , falsefalsefalsefalse ); ); ); );
39 add( plainJRadioButton ); add( plainJRadioButton ); add( plainJRadioButton ); add( plainJRadioButton ); // adicio// adicio// adicio// adiciona botão simples ao JFramena botão simples ao JFramena botão simples ao JFramena botão simples ao JFrame
40 add( boldJRadioButton ); add( boldJRadioButton ); add( boldJRadioButton ); add( boldJRadioButton ); // adiciona botão de negrito ao JFrame// adiciona botão de negrito ao JFrame// adiciona botão de negrito ao JFrame// adiciona botão de negrito ao JFrame
41 add( italicJRadioButton ); add( italicJRadioButton ); add( italicJRadioButton ); add( italicJRadioButton ); // adiciona botão // adiciona botão // adiciona botão // adiciona botão de de de de itálico itálico itálico itálico aoaoaoao JFrame JFrame JFrame JFrame
42 add( boldItalicJRadioButton ); add( boldItalicJRadioButton ); add( boldItalicJRadioButton ); add( boldItalicJRadioButton ); // adiciona botão de itálico e ne// adiciona botão de itálico e ne// adiciona botão de itálico e ne// adiciona botão de itálico e negrgrgrgritoitoitoito
43
44 // cria relacionamento lógico entre JRadioButtons// cria relacionamento lógico entre JRadioButtons// cria relacionamento lógico entre JRadioButtons// cria relacionamento lógico entre JRadioButtons
45 radioGroup = radioGroup = radioGroup = radioGroup = newnewnewnew ButtonGroup(); ButtonGroup(); ButtonGroup(); ButtonGroup(); // cr// cr// cr// cria ia ia ia ButtonGroupButtonGroupButtonGroupButtonGroup
46 radioGroup.add( plainJRadioButton ); radioGroup.add( plainJRadioButton ); radioGroup.add( plainJRadioButton ); radioGroup.add( plainJRadioButton ); // adiciona simples ao grupo// adiciona simples ao grupo// adiciona simples ao grupo// adiciona simples ao grupo
47 radioradioradioradioGroup.add( boldJRadioButton ); Group.add( boldJRadioButton ); Group.add( boldJRadioButton ); Group.add( boldJRadioButton ); // adiciona negrito ao g// adiciona negrito ao g// adiciona negrito ao g// adiciona negrito ao gruporuporuporupo
48 radioGroup.add( italicJRadioButton ); radioGroup.add( italicJRadioButton ); radioGroup.add( italicJRadioButton ); radioGroup.add( italicJRadioButton ); // adiciona itálico ao g// adiciona itálico ao g// adiciona itálico ao g// adiciona itálico ao gruporuporuporupo
49 radioGroup.add( boldItalicJRadioButton ); radioGroup.add( boldItalicJRadioButton ); radioGroup.add( boldItalicJRadioButton ); radioGroup.add( boldItalicJRadioButton ); // adiciona negrito e itálico// adiciona negrito e itálico// adiciona negrito e itálico// adiciona negrito e itálico
50
Cria os quatro JRadioButtons
Cria o ButtonGroup
Introdução à Tecnologia Java – 02/2012
Exemplo25 // construtor RadioButtonFrame adiciona JRadioButtons ao Jframe // construtor RadioButtonFrame adiciona JRadioButtons ao Jframe // construtor RadioButtonFrame adiciona JRadioButtons ao Jframe // construtor RadioButtonFrame adiciona JRadioButtons ao Jframe
26 publicpublicpublicpublic RadioButtonFrame() RadioButtonFrame() RadioButtonFrame() RadioButtonFrame()
27 { { { {
28 supersupersupersuper( ( ( ( "RadioButton Test""RadioButton Test""RadioButton Test""RadioButton Test" ); ); ); );
29 setLayout( setLayout( setLayout( setLayout( newnewnewnew FlowLayout() ); FlowLayout() ); FlowLayout() ); FlowLayout() ); // configura layout do frame// configura layout do frame// configura layout do frame// configura layout do frame
30
31 textField = textField = textField = textField = nnnnewewewew JTextField( JTextField( JTextField( JTextField( "Watch the font style change""Watch the font style change""Watch the font style change""Watch the font style change", , , , 25252525 ); ); ); );
32 add( textField ); add( textField ); add( textField ); add( textField ); // adiciona textField ao JFrame// adiciona textField ao JFrame// adiciona textField ao JFrame// adiciona textField ao JFrame
33
34 // cria botões de opçã // cria botões de opçã // cria botões de opçã // cria botões de opçãoooo
35 plainJRadioButton = plainJRadioButton = plainJRadioButton = plainJRadioButton = newnewnewnew JRadioButton( JRadioButton( JRadioButton( JRadioButton( "Plain""Plain""Plain""Plain", , , , truetruetruetrue ); ); ); );
Celso Olivete Júnior 111
35 plainJRadioButton = plainJRadioButton = plainJRadioButton = plainJRadioButton = newnewnewnew JRadioButton( JRadioButton( JRadioButton( JRadioButton( "Plain""Plain""Plain""Plain", , , , truetruetruetrue ); ); ); );
36 boldJRadioButboldJRadioButboldJRadioButboldJRadioButton = ton = ton = ton = newnewnewnew JRadioButton( JRadioButton( JRadioButton( JRadioButton( "Bold""Bold""Bold""Bold", , , , falsefalsefalsefalse ); ); ); );
37 italicJRadioButton = italicJRadioButton = italicJRadioButton = italicJRadioButton = newnewnewnew JRadioButton( JRadioButton( JRadioButton( JRadioButton( "Italic""Italic""Italic""Italic", , , , falsefalsefalsefalse ); ); ); );
38 boldItalicJRadioButton = boldItalicJRadioButton = boldItalicJRadioButton = boldItalicJRadioButton = newnewnewnew JRadioButton( JRadioButton( JRadioButton( JRadioButton( "Bold/Italic""Bold/Italic""Bold/Italic""Bold/Italic", , , , falsefalsefalsefalse ); ); ); );
39 add( plainJRadioButton ); add( plainJRadioButton ); add( plainJRadioButton ); add( plainJRadioButton ); // adicio// adicio// adicio// adiciona botão simples ao JFramena botão simples ao JFramena botão simples ao JFramena botão simples ao JFrame
40 add( boldJRadioButton ); add( boldJRadioButton ); add( boldJRadioButton ); add( boldJRadioButton ); // adiciona botão de negrito ao JFrame// adiciona botão de negrito ao JFrame// adiciona botão de negrito ao JFrame// adiciona botão de negrito ao JFrame
41 add( italicJRadioButton ); add( italicJRadioButton ); add( italicJRadioButton ); add( italicJRadioButton ); // adiciona botão // adiciona botão // adiciona botão // adiciona botão de de de de itálico itálico itálico itálico aoaoaoao JFrame JFrame JFrame JFrame
42 add( boldItalicJRadioButton ); add( boldItalicJRadioButton ); add( boldItalicJRadioButton ); add( boldItalicJRadioButton ); // adiciona botão de itálico e ne// adiciona botão de itálico e ne// adiciona botão de itálico e ne// adiciona botão de itálico e negrgrgrgritoitoitoito
43
44 // cria relacionamento lógico entre JRadioButtons// cria relacionamento lógico entre JRadioButtons// cria relacionamento lógico entre JRadioButtons// cria relacionamento lógico entre JRadioButtons
45 radioGroup = radioGroup = radioGroup = radioGroup = newnewnewnew ButtonGroup(); ButtonGroup(); ButtonGroup(); ButtonGroup(); // cr// cr// cr// cria ia ia ia ButtonGroupButtonGroupButtonGroupButtonGroup
46 radioGroup.add( plainJRadioButton ); radioGroup.add( plainJRadioButton ); radioGroup.add( plainJRadioButton ); radioGroup.add( plainJRadioButton ); // adiciona simples ao grupo// adiciona simples ao grupo// adiciona simples ao grupo// adiciona simples ao grupo
47 radioradioradioradioGroup.add( boldJRadioButton ); Group.add( boldJRadioButton ); Group.add( boldJRadioButton ); Group.add( boldJRadioButton ); // adiciona negrito ao g// adiciona negrito ao g// adiciona negrito ao g// adiciona negrito ao gruporuporuporupo
48 radioGroup.add( italicJRadioButton ); radioGroup.add( italicJRadioButton ); radioGroup.add( italicJRadioButton ); radioGroup.add( italicJRadioButton ); // adiciona itálico ao g// adiciona itálico ao g// adiciona itálico ao g// adiciona itálico ao gruporuporuporupo
49 radioGroup.add( boldItalicJRadioButton ); radioGroup.add( boldItalicJRadioButton ); radioGroup.add( boldItalicJRadioButton ); radioGroup.add( boldItalicJRadioButton ); // adiciona negrito e itálico// adiciona negrito e itálico// adiciona negrito e itálico// adiciona negrito e itálico
50
Cria os quatro JRadioButtons
Cria o ButtonGroup
Adiciona cada JRadioButton ao
ButtonGroup
Introdução à Tecnologia Java – 02/2012
Exemplo 51 // cria objetos de fonte // cria objetos de fonte // cria objetos de fonte // cria objetos de fonte
52 plainFont = plainFont = plainFont = plainFont = newnewnewnew Font( Font( Font( Font( "Serif""Serif""Serif""Serif", , , , Font.PLAINFont.PLAINFont.PLAINFont.PLAIN, , , , 14141414 ); ); ); );
53 boldFont = boldFont = boldFont = boldFont = newnewnewnew Font( Font( Font( Font( "Serif""Serif""Serif""Serif", , , , Font.BOLDFont.BOLDFont.BOLDFont.BOLD, , , , 14141414 ); ); ); );
54 italicFont = italicFont = italicFont = italicFont = newnewnewnew Font( Font( Font( Font( "Serif""Serif""Serif""Serif", , , , Font.ITALICFont.ITALICFont.ITALICFont.ITALIC, , , , 14141414 ); ); ); );
55 boldItalicFont = boldItalicFont = boldItalicFont = boldItalicFont = newnewnewnew Font( Font( Font( Font( "S"S"S"Serif"erif"erif"erif", , , , Font.BOLDFont.BOLDFont.BOLDFont.BOLD + + + + Font.ITALICFont.ITALICFont.ITALICFont.ITALIC, , , , 14141414 ); ); ); );
56 textField.setFont( plainFont ); textField.setFont( plainFont ); textField.setFont( plainFont ); textField.setFont( plainFont ); // configura fonte inicial à simples// configura fonte inicial à simples// configura fonte inicial à simples// configura fonte inicial à simples
57
58 // // // // registra eventos para JRadioButtonsregistra eventos para JRadioButtonsregistra eventos para JRadioButtonsregistra eventos para JRadioButtons
59 plainJRadioButton.addItemListener(plainJRadioButton.addItemListener(plainJRadioButton.addItemListener(plainJRadioButton.addItemListener(
60
Celso Olivete Júnior 112
60 newnewnewnew RadioButtonHandler( plainFont ) ); RadioButtonHandler( plainFont ) ); RadioButtonHandler( plainFont ) ); RadioButtonHandler( plainFont ) );
61 boldJRadioButton.addItemListener(boldJRadioButton.addItemListener(boldJRadioButton.addItemListener(boldJRadioButton.addItemListener(
62 newnewnewnew RadioButtonHandler( boldFont ) ); RadioButtonHandler( boldFont ) ); RadioButtonHandler( boldFont ) ); RadioButtonHandler( boldFont ) );
63 italicJRadioButton.addItemListener(italicJRadioButton.addItemListener(italicJRadioButton.addItemListener(italicJRadioButton.addItemListener(
64 newnewnewnew RadioButtonHan RadioButtonHan RadioButtonHan RadioButtonHandler( italicFont ) );dler( italicFont ) );dler( italicFont ) );dler( italicFont ) );
65 boldItalicJRadioButton.addItemListener(boldItalicJRadioButton.addItemListener(boldItalicJRadioButton.addItemListener(boldItalicJRadioButton.addItemListener(
66 newnewnewnew RadioButtonHandler( boldItalicFont ) ); RadioButtonHandler( boldItalicFont ) ); RadioButtonHandler( boldItalicFont ) ); RadioButtonHandler( boldItalicFont ) );
67 } } } } // fim do construtor RadioButtonFrame // fim do construtor RadioButtonFrame // fim do construtor RadioButtonFrame // fim do construtor RadioButtonFrame
68
Registra um handler de evento com
cada JRadioButton
Introdução à Tecnologia Java – 02/2012
Exemplo 69 // classe interna private para tratar eventos de bo // classe interna private para tratar eventos de bo // classe interna private para tratar eventos de bo // classe interna private para tratar eventos de botão de opçãotão de opçãotão de opçãotão de opção
70 privateprivateprivateprivate classclassclassclass RadioButtonHandler RadioButtonHandler RadioButtonHandler RadioButtonHandler implementsimplementsimplementsimplements ItemListener ItemListener ItemListener ItemListener
71 { { { {
72 privateprivateprivateprivate Font font; Font font; Font font; Font font; // fonte associada com esse listener// fonte associada com esse listener// fonte associada com esse listener// fonte associada com esse listener
73
74 publicpublicpublicpublic RadioButtonHandler( Font f ) RadioButtonHandler( Font f ) RadioButtonHandler( Font f ) RadioButtonHandler( Font f )
75 { { { {
76 font = f; font = f; font = f; font = f; // configu// configu// configu// configura a fonte desse listenerra a fonte desse listenerra a fonte desse listenerra a fonte desse listener
77 } } } } // fim do construtor RadioButtonHandler// fim do construtor RadioButtonHandler// fim do construtor RadioButtonHandler// fim do construtor RadioButtonHandler
78
A classe interna do handler de evento
implementa ItemListener
Celso Olivete Júnior 113
78
79 // trata eventos de botão de opção // trata eventos de botão de opção // trata eventos de botão de opção // trata eventos de botão de opção
80 publicpublicpublicpublic voidvoidvoidvoid itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event )
81 { { { {
82 textField.setFont( font ); textField.setFont( font ); textField.setFont( font ); textField.setFont( font ); ///// configura fonte de textField/ configura fonte de textField/ configura fonte de textField/ configura fonte de textField
83 } } } } // // // // fim do método fim do método fim do método fim do método itemStateChangeditemStateChangeditemStateChangeditemStateChanged
84 } } } } // fim da classe RadioButtonHandler interna pr// fim da classe RadioButtonHandler interna pr// fim da classe RadioButtonHandler interna pr// fim da classe RadioButtonHandler interna privateivateivateivate
85 } } } } // // // // fim da classe fim da classe fim da classe fim da classe RadioButtonFrame RadioButtonFrame RadioButtonFrame RadioButtonFrame
Introdução à Tecnologia Java – 02/2012
Exemplo 69 // classe interna private para tratar eventos de bo // classe interna private para tratar eventos de bo // classe interna private para tratar eventos de bo // classe interna private para tratar eventos de botão de opçãotão de opçãotão de opçãotão de opção
70 privateprivateprivateprivate classclassclassclass RadioButtonHandler RadioButtonHandler RadioButtonHandler RadioButtonHandler implementsimplementsimplementsimplements ItemListener ItemListener ItemListener ItemListener
71 { { { {
72 privateprivateprivateprivate Font font; Font font; Font font; Font font; // fonte associada com esse listener// fonte associada com esse listener// fonte associada com esse listener// fonte associada com esse listener
73
74 publicpublicpublicpublic RadioButtonHandler( Font f ) RadioButtonHandler( Font f ) RadioButtonHandler( Font f ) RadioButtonHandler( Font f )
75 { { { {
76 font = f; font = f; font = f; font = f; // configu// configu// configu// configura a fonte desse listenerra a fonte desse listenerra a fonte desse listenerra a fonte desse listener
77 } } } } // fim do construtor RadioButtonHandler// fim do construtor RadioButtonHandler// fim do construtor RadioButtonHandler// fim do construtor RadioButtonHandler
78
A classe interna do handler de evento
implementa ItemListener
Quando o botão de opção é selecionado, a
origem do campo de texto é configurada
Celso Olivete Júnior 114
78
79 // trata eventos de botão de opção // trata eventos de botão de opção // trata eventos de botão de opção // trata eventos de botão de opção
80 publicpublicpublicpublic voidvoidvoidvoid itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event )
81 { { { {
82 textField.setFont( font ); textField.setFont( font ); textField.setFont( font ); textField.setFont( font ); ///// configura fonte de textField/ configura fonte de textField/ configura fonte de textField/ configura fonte de textField
83 } } } } // // // // fim do método fim do método fim do método fim do método itemStateChangeditemStateChangeditemStateChangeditemStateChanged
84 } } } } // fim da classe RadioButtonHandler interna pr// fim da classe RadioButtonHandler interna pr// fim da classe RadioButtonHandler interna pr// fim da classe RadioButtonHandler interna privateivateivateivate
85 } } } } // // // // fim da classe fim da classe fim da classe fim da classe RadioButtonFrame RadioButtonFrame RadioButtonFrame RadioButtonFrame
origem do campo de texto é configurada
com o valor passado para o construtor
Introdução à Tecnologia Java – 02/2012
Exemplo 1 // Fig. 11.20: RadioButtonTest.java// Fig. 11.20: RadioButtonTest.java// Fig. 11.20: RadioButtonTest.java// Fig. 11.20: RadioButtonTest.java
2 // Test// Test// Test// Testaaaandondondondo RadioButtonFrame. RadioButtonFrame. RadioButtonFrame. RadioButtonFrame.
3 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
4
5 publicpublicpublicpublic classclassclassclass RadioButtonTest RadioButtonTest RadioButtonTest RadioButtonTest
6 {{{{
7 publicpublicpublicpublic staticstaticstaticstatic voidvoidvoidvoid main( String args[] ) main( String args[] ) main( String args[] ) main( String args[] )
8 { { { {
9 RadioButtonFrame radioButtonFrame = RadioButtonFrame radioButtonFrame = RadioButtonFrame radioButtonFrame = RadioButtonFrame radioButtonFrame = newnewnewnew RadioButtonFrame();RadioButtonFrame();RadioButtonFrame();RadioButtonFrame();
10 radioButtonFrame.setDefaultCloseOperation( radioButtonFrame.setDefaultCloseOperation( radioButtonFrame.setDefaultCloseOperation( radioButtonFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSE ); ); ); );
Celso Olivete Júnior 115
10 radioButtonFrame.setDefaultCloseOperation( radioButtonFrame.setDefaultCloseOperation( radioButtonFrame.setDefaultCloseOperation( radioButtonFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSE ); ); ); );
11 radioButtonFrame.setSize( radioButtonFrame.setSize( radioButtonFrame.setSize( radioButtonFrame.setSize( 300300300300, , , , 100100100100 ); ); ); ); // // // // cccconfigura tamanho doonfigura tamanho doonfigura tamanho doonfigura tamanho do frame frame frame frame
12 radioButtonFrame.setVisible( radioButtonFrame.setVisible( radioButtonFrame.setVisible( radioButtonFrame.setVisible( truetruetruetrue ); ); ); ); // // // // eeeexibe o xibe o xibe o xibe o frameframeframeframe
13 } } } } // // // // ffffim de im de im de im de mainmainmainmain
14 } } } } // // // // fim da classefim da classefim da classefim da classe RadioButtonTest RadioButtonTest RadioButtonTest RadioButtonTest
Introdução à Tecnologia Java – 02/2012
JComboBox e utilização de uma classe interna anônima para
tratamento de eventos
• Caixa de combinação:
•Às vezes, também chamada
lista drop-down.
Implementada pela classe JComboBox.
Barra de rolagem para rolar pelos
itens na lista
setas de rolagem
caixa de rolagem
•Implementada pela classe JComboBox.
•Cada item na lista tem um índice.
•setMaximumRowCount configura o número máximo de linhas
mostradas de cada vez.
•JComboBox fornece uma barra de rolagem e setas para cima e para
baixo para percorrer a lista.
Celso Olivete Júnior 116
Introdução à Tecnologia Java – 02/2012
Utilizando uma classe interna anônima para
tratamento de evento
• Classe interna anônima:
•Forma especial de classe interna.•Forma especial de classe interna.
•Declarada sem nome.
•Em geral, aparece dentro de uma chamada de
método.
•Tem acesso limitado a variáveis locais.Celso Olivete Júnior 117
Introdução à Tecnologia Java – 02/2012
Exemplo1// Usando a JComboBox para selecionar uma image // Usando a JComboBox para selecionar uma image // Usando a JComboBox para selecionar uma image // Usando a JComboBox para selecionar uma image para exibiçãopara exibiçãopara exibiçãopara exibição....
2 importimportimportimport java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout;
3 importimportimportimport java.awt.event.ItemListener; java.awt.event.ItemListener; java.awt.event.ItemListener; java.awt.event.ItemListener;
4 importimportimportimport java.awt.event.ItemEvent; java.awt.event.ItemEvent; java.awt.event.ItemEvent; java.awt.event.ItemEvent;
5 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
6 importimportimportimport javax.swing.JLabel; javax.swing.JLabel; javax.swing.JLabel; javax.swing.JLabel;
7 importimportimportimport javax.swi javax.swi javax.swi javax.swing.JComboBox;ng.JComboBox;ng.JComboBox;ng.JComboBox;
8 importimportimportimport javax.swing.Icon; javax.swing.Icon; javax.swing.Icon; javax.swing.Icon;
9 importimportimportimport javax.swing.ImageIcon; javax.swing.ImageIcon; javax.swing.ImageIcon; javax.swing.ImageIcon;
10
11 publicpublicpublicpublic classclassclassclass ComboBoxFrame ComboBoxFrame ComboBoxFrame ComboBoxFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
Celso Olivete Júnior 118
11 publicpublicpublicpublic classclassclassclass ComboBoxFrame ComboBoxFrame ComboBoxFrame ComboBoxFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
12 {{{{
13 privateprivateprivateprivate JComboBox imagesJComboBox; JComboBox imagesJComboBox; JComboBox imagesJComboBox; JComboBox imagesJComboBox; // // // // caixa de combinação p/ armazenar nomes de íconescaixa de combinação p/ armazenar nomes de íconescaixa de combinação p/ armazenar nomes de íconescaixa de combinação p/ armazenar nomes de ícones
14 privateprivateprivateprivate JLabel JLabel JLabel JLabel label; label; label; label; // rótulo para exibir ícone selecionado// rótulo para exibir ícone selecionado// rótulo para exibir ícone selecionado// rótulo para exibir ícone selecionado
16
15 privateprivateprivateprivate String names[] = String names[] = String names[] = String names[] =
16 { { { { "bug1.gif""bug1.gif""bug1.gif""bug1.gif", , , , "bug2.gif""bug2.gif""bug2.gif""bug2.gif", , , , "travelbug.gif""travelbug.gif""travelbug.gif""travelbug.gif", , , , "buganim.gif""buganim.gif""buganim.gif""buganim.gif" }; }; }; };
17 privateprivateprivateprivate Icon icons[] = { Icon icons[] = { Icon icons[] = { Icon icons[] = {
18 newnewnewnew ImageIcon( getClass().getResource( names[ ImageIcon( getClass().getResource( names[ ImageIcon( getClass().getResource( names[ ImageIcon( getClass().getResource( names[ 0000 ] ) ] ) ] ) ] ) ),),),),
19 newnewnewnew ImageIcon( getClass().getResource( names[ ImageIcon( getClass().getResource( names[ ImageIcon( getClass().getResource( names[ ImageIcon( getClass().getResource( names[ 1111 ] ) ), ] ) ), ] ) ), ] ) ),
20 newnewnewnew ImageIcon( getClass().getResource( names[ ImageIcon( getClass().getResource( names[ ImageIcon( getClass().getResource( names[ ImageIcon( getClass().getResource( names[ 2222 ] ) ), ] ) ), ] ) ), ] ) ),
21 newnewnewnew ImageIcon( getClass().getResource( names[ ImageIcon( getClass().getResource( names[ ImageIcon( getClass().getResource( names[ ImageIcon( getClass().getResource( names[ 3333 ] ) ) }; ] ) ) }; ] ) ) }; ] ) ) };
22
23 // construtor ComboBoxFrame adiciona J // construtor ComboBoxFrame adiciona J // construtor ComboBoxFrame adiciona J // construtor ComboBoxFrame adiciona JComboBox ComboBox ComboBox ComboBox aoaoaoao JFrame JFrame JFrame JFrame
24 publicpublicpublicpublic ComboBoxFrame() ComboBoxFrame() ComboBoxFrame() ComboBoxFrame()
25 { { { {
26 supersupersupersuper( ( ( ( "Testing JComboBox" "Testing JComboBox" "Testing JComboBox" "Testing JComboBox" ););););
27 setLayout( setLayout( setLayout( setLayout( newnewnewnew FlowLayout() ); FlowLayout() ); FlowLayout() ); FlowLayout() ); // configura layout do frame// configura layout do frame// configura layout do frame// configura layout do frame
28
Introdução à Tecnologia Java – 02/2012
Exemplo1// Usando a JComboBox para selecionar uma image // Usando a JComboBox para selecionar uma image // Usando a JComboBox para selecionar uma image // Usando a JComboBox para selecionar uma image para exibiçãopara exibiçãopara exibiçãopara exibição....
2 importimportimportimport java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout;
3 importimportimportimport java.awt.event.ItemListener; java.awt.event.ItemListener; java.awt.event.ItemListener; java.awt.event.ItemListener;
4 importimportimportimport java.awt.event.ItemEvent; java.awt.event.ItemEvent; java.awt.event.ItemEvent; java.awt.event.ItemEvent;
5 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
6 importimportimportimport javax.swing.JLabel; javax.swing.JLabel; javax.swing.JLabel; javax.swing.JLabel;
7 importimportimportimport javax.swi javax.swi javax.swi javax.swing.JComboBox;ng.JComboBox;ng.JComboBox;ng.JComboBox;
8 importimportimportimport javax.swing.Icon; javax.swing.Icon; javax.swing.Icon; javax.swing.Icon;
9 importimportimportimport javax.swing.ImageIcon; javax.swing.ImageIcon; javax.swing.ImageIcon; javax.swing.ImageIcon;
10
11 publicpublicpublicpublic classclassclassclass ComboBoxFrame ComboBoxFrame ComboBoxFrame ComboBoxFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
Celso Olivete Júnior 119
11 publicpublicpublicpublic classclassclassclass ComboBoxFrame ComboBoxFrame ComboBoxFrame ComboBoxFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
12 {{{{
13 privateprivateprivateprivate JComboBox imagesJComboBox; JComboBox imagesJComboBox; JComboBox imagesJComboBox; JComboBox imagesJComboBox; // // // // caixa de combinação p/ armazenar nomes de íconescaixa de combinação p/ armazenar nomes de íconescaixa de combinação p/ armazenar nomes de íconescaixa de combinação p/ armazenar nomes de ícones
14 privateprivateprivateprivate JLabel JLabel JLabel JLabel label; label; label; label; // rótulo para exibir ícone selecionado// rótulo para exibir ícone selecionado// rótulo para exibir ícone selecionado// rótulo para exibir ícone selecionado
16
15 privateprivateprivateprivate String names[] = String names[] = String names[] = String names[] =
16 { { { { "bug1.gif""bug1.gif""bug1.gif""bug1.gif", , , , "bug2.gif""bug2.gif""bug2.gif""bug2.gif", , , , "travelbug.gif""travelbug.gif""travelbug.gif""travelbug.gif", , , , "buganim.gif""buganim.gif""buganim.gif""buganim.gif" }; }; }; };
17 privateprivateprivateprivate Icon icons[] = { Icon icons[] = { Icon icons[] = { Icon icons[] = {
18 newnewnewnew ImageIcon( getClass().getResource( names[ ImageIcon( getClass().getResource( names[ ImageIcon( getClass().getResource( names[ ImageIcon( getClass().getResource( names[ 0000 ] ) ] ) ] ) ] ) ),),),),
19 newnewnewnew ImageIcon( getClass().getResource( names[ ImageIcon( getClass().getResource( names[ ImageIcon( getClass().getResource( names[ ImageIcon( getClass().getResource( names[ 1111 ] ) ), ] ) ), ] ) ), ] ) ),
20 newnewnewnew ImageIcon( getClass().getResource( names[ ImageIcon( getClass().getResource( names[ ImageIcon( getClass().getResource( names[ ImageIcon( getClass().getResource( names[ 2222 ] ) ), ] ) ), ] ) ), ] ) ),
21 newnewnewnew ImageIcon( getClass().getResource( names[ ImageIcon( getClass().getResource( names[ ImageIcon( getClass().getResource( names[ ImageIcon( getClass().getResource( names[ 3333 ] ) ) }; ] ) ) }; ] ) ) }; ] ) ) };
22
23 // construtor ComboBoxFrame adiciona J // construtor ComboBoxFrame adiciona J // construtor ComboBoxFrame adiciona J // construtor ComboBoxFrame adiciona JComboBox ComboBox ComboBox ComboBox aoaoaoao JFrame JFrame JFrame JFrame
24 publicpublicpublicpublic ComboBoxFrame() ComboBoxFrame() ComboBoxFrame() ComboBoxFrame()
25 { { { {
26 supersupersupersuper( ( ( ( "Testing JComboBox" "Testing JComboBox" "Testing JComboBox" "Testing JComboBox" ););););
27 setLayout( setLayout( setLayout( setLayout( newnewnewnew FlowLayout() ); FlowLayout() ); FlowLayout() ); FlowLayout() ); // configura layout do frame// configura layout do frame// configura layout do frame// configura layout do frame
28
Declara a variável de instância
JComboBox
Introdução à Tecnologia Java – 02/2012
Exemplo29 imagesJComboBox = imagesJComboBox = imagesJComboBox = imagesJComboBox = newnewnewnew JComboBox( names ); JComboBox( names ); JComboBox( names ); JComboBox( names ); // // // // configura aconfigura aconfigura aconfigura a JComboBox JComboBox JComboBox JComboBox
30 imagesJComboBox.setMaximumRowCount( imagesJComboBox.setMaximumRowCount( imagesJComboBox.setMaximumRowCount( imagesJComboBox.setMaximumRowCount( 3333 ); ); ); ); // // // // exibe trÊs linhasexibe trÊs linhasexibe trÊs linhasexibe trÊs linhas
31
32 imagesJComboBox.addItemListener(imagesJComboBox.addItemListener(imagesJComboBox.addItemListener(imagesJComboBox.addItemListener(
33 newnewnewnew ItemListe ItemListe ItemListe ItemListener() ner() ner() ner() // // // // classe interna anÔnimaclasse interna anÔnimaclasse interna anÔnimaclasse interna anÔnima
34 {{{{
35 // // // // trata evento trata evento trata evento trata evento JComboBoxJComboBoxJComboBoxJComboBox
36 publicpublicpublicpublic voidvoidvoidvoid itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event )
37 {{{{
38 // // // // determina se caixa de seleção está marcada ou nãodetermina se caixa de seleção está marcada ou nãodetermina se caixa de seleção está marcada ou nãodetermina se caixa de seleção está marcada ou não
Cria JComboBox e configura a
contagem máxima de linhas
Celso Olivete Júnior 120
38 // // // // determina se caixa de seleção está marcada ou nãodetermina se caixa de seleção está marcada ou nãodetermina se caixa de seleção está marcada ou nãodetermina se caixa de seleção está marcada ou não
39 ifififif ( event.getStateChange() == ( event.getStateChange() == ( event.getStateChange() == ( event.getStateChange() == ItemEvent.SELECTEDItemEvent.SELECTEDItemEvent.SELECTEDItemEvent.SELECTED ) ) ) )
40 llllabel.setIcon( icons[abel.setIcon( icons[abel.setIcon( icons[abel.setIcon( icons[
41 imagesJComboBox.getSelectedIndex() ] );imagesJComboBox.getSelectedIndex() ] );imagesJComboBox.getSelectedIndex() ] );imagesJComboBox.getSelectedIndex() ] );
42 } } } } // // // // fim do método fim do método fim do método fim do método itemStateChangeditemStateChangeditemStateChangeditemStateChanged
43 } } } } // // // // fim da classe interna anônimafim da classe interna anônimafim da classe interna anônimafim da classe interna anônima
44 ); ); ); ); // // // // fim da chamada para fim da chamada para fim da chamada para fim da chamada para addItemListeneraddItemListeneraddItemListeneraddItemListener
45
46 add( imagesJComboBox ); add( imagesJComboBox ); add( imagesJComboBox ); add( imagesJComboBox ); // ad// ad// ad// adiciona a caixa de combinaçiciona a caixa de combinaçiciona a caixa de combinaçiciona a caixa de combinaçãoãoãoão aaaao JFrameo JFrameo JFrameo JFrame
47 label = label = label = label = newnewnewnew JLabel( icons[ JLabel( icons[ JLabel( icons[ JLabel( icons[ 0000 ] ); ] ); ] ); ] ); // // // // exibe o primeiroexibe o primeiroexibe o primeiroexibe o primeiro ííííconconconconeeee
48 add( label ); add( label ); add( label ); add( label ); // ad// ad// ad// adiciona rótulo aoiciona rótulo aoiciona rótulo aoiciona rótulo ao JFrame JFrame JFrame JFrame
49 } } } } // // // // fim dofim dofim dofim do construtor construtor construtor construtor ComboBoxFrame ComboBoxFrame ComboBoxFrame ComboBoxFrame
50 } } } } // // // // fim da classe fim da classe fim da classe fim da classe ComboBoxFrameComboBoxFrameComboBoxFrameComboBoxFrame
Introdução à Tecnologia Java – 02/2012
Exemplo29 imagesJComboBox = imagesJComboBox = imagesJComboBox = imagesJComboBox = newnewnewnew JComboBox( names ); JComboBox( names ); JComboBox( names ); JComboBox( names ); // // // // configura aconfigura aconfigura aconfigura a JComboBox JComboBox JComboBox JComboBox
30 imagesJComboBox.setMaximumRowCount( imagesJComboBox.setMaximumRowCount( imagesJComboBox.setMaximumRowCount( imagesJComboBox.setMaximumRowCount( 3333 ); ); ); ); // // // // exibe trÊs linhasexibe trÊs linhasexibe trÊs linhasexibe trÊs linhas
31
32 imagesJComboBox.addItemListener(imagesJComboBox.addItemListener(imagesJComboBox.addItemListener(imagesJComboBox.addItemListener(
33 newnewnewnew ItemListe ItemListe ItemListe ItemListener() ner() ner() ner() // // // // classe interna anÔnimaclasse interna anÔnimaclasse interna anÔnimaclasse interna anÔnima
34 {{{{
35 // // // // trata evento trata evento trata evento trata evento JComboBoxJComboBoxJComboBoxJComboBox
36 publicpublicpublicpublic voidvoidvoidvoid itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event )
37 {{{{
38 // // // // determina se caixa de seleção está marcada ou nãodetermina se caixa de seleção está marcada ou nãodetermina se caixa de seleção está marcada ou nãodetermina se caixa de seleção está marcada ou não
Cria JComboBox e configura a
contagem máxima de linhas
Cria a classe interna anônima como
o handler de evento
Celso Olivete Júnior 121
38 // // // // determina se caixa de seleção está marcada ou nãodetermina se caixa de seleção está marcada ou nãodetermina se caixa de seleção está marcada ou nãodetermina se caixa de seleção está marcada ou não
39 ifififif ( event.getStateChange() == ( event.getStateChange() == ( event.getStateChange() == ( event.getStateChange() == ItemEvent.SELECTEDItemEvent.SELECTEDItemEvent.SELECTEDItemEvent.SELECTED ) ) ) )
40 llllabel.setIcon( icons[abel.setIcon( icons[abel.setIcon( icons[abel.setIcon( icons[
41 imagesJComboBox.getSelectedIndex() ] );imagesJComboBox.getSelectedIndex() ] );imagesJComboBox.getSelectedIndex() ] );imagesJComboBox.getSelectedIndex() ] );
42 } } } } // // // // fim do método fim do método fim do método fim do método itemStateChangeditemStateChangeditemStateChangeditemStateChanged
43 } } } } // // // // fim da classe interna anônimafim da classe interna anônimafim da classe interna anônimafim da classe interna anônima
44 ); ); ); ); // // // // fim da chamada para fim da chamada para fim da chamada para fim da chamada para addItemListeneraddItemListeneraddItemListeneraddItemListener
45
46 add( imagesJComboBox ); add( imagesJComboBox ); add( imagesJComboBox ); add( imagesJComboBox ); // ad// ad// ad// adiciona a caixa de combinaçiciona a caixa de combinaçiciona a caixa de combinaçiciona a caixa de combinaçãoãoãoão aaaao JFrameo JFrameo JFrameo JFrame
47 label = label = label = label = newnewnewnew JLabel( icons[ JLabel( icons[ JLabel( icons[ JLabel( icons[ 0000 ] ); ] ); ] ); ] ); // // // // exibe o primeiroexibe o primeiroexibe o primeiroexibe o primeiro ííííconconconconeeee
48 add( label ); add( label ); add( label ); add( label ); // ad// ad// ad// adiciona rótulo aoiciona rótulo aoiciona rótulo aoiciona rótulo ao JFrame JFrame JFrame JFrame
49 } } } } // // // // fim dofim dofim dofim do construtor construtor construtor construtor ComboBoxFrame ComboBoxFrame ComboBoxFrame ComboBoxFrame
50 } } } } // // // // fim da classe fim da classe fim da classe fim da classe ComboBoxFrameComboBoxFrameComboBoxFrameComboBoxFrame
Introdução à Tecnologia Java – 02/2012
Exemplo29 imagesJComboBox = imagesJComboBox = imagesJComboBox = imagesJComboBox = newnewnewnew JComboBox( names ); JComboBox( names ); JComboBox( names ); JComboBox( names ); // // // // configura aconfigura aconfigura aconfigura a JComboBox JComboBox JComboBox JComboBox
30 imagesJComboBox.setMaximumRowCount( imagesJComboBox.setMaximumRowCount( imagesJComboBox.setMaximumRowCount( imagesJComboBox.setMaximumRowCount( 3333 ); ); ); ); // // // // exibe trÊs linhasexibe trÊs linhasexibe trÊs linhasexibe trÊs linhas
31
32 imagesJComboBox.addItemListener(imagesJComboBox.addItemListener(imagesJComboBox.addItemListener(imagesJComboBox.addItemListener(
33 newnewnewnew ItemListe ItemListe ItemListe ItemListener() ner() ner() ner() // // // // classe interna anÔnimaclasse interna anÔnimaclasse interna anÔnimaclasse interna anÔnima
34 {{{{
35 // // // // trata evento trata evento trata evento trata evento JComboBoxJComboBoxJComboBoxJComboBox
36 publicpublicpublicpublic voidvoidvoidvoid itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event )
37 {{{{
38 // // // // determina se caixa de seleção está marcada ou nãodetermina se caixa de seleção está marcada ou nãodetermina se caixa de seleção está marcada ou nãodetermina se caixa de seleção está marcada ou não
Cria JComboBox e configura a
contagem máxima de linhas
Cria a classe interna anônima como
o handler de evento
Declara o método itemStateChanged
Celso Olivete Júnior 122
38 // // // // determina se caixa de seleção está marcada ou nãodetermina se caixa de seleção está marcada ou nãodetermina se caixa de seleção está marcada ou nãodetermina se caixa de seleção está marcada ou não
39 ifififif ( event.getStateChange() == ( event.getStateChange() == ( event.getStateChange() == ( event.getStateChange() == ItemEvent.SELECTEDItemEvent.SELECTEDItemEvent.SELECTEDItemEvent.SELECTED ) ) ) )
40 llllabel.setIcon( icons[abel.setIcon( icons[abel.setIcon( icons[abel.setIcon( icons[
41 imagesJComboBox.getSelectedIndex() ] );imagesJComboBox.getSelectedIndex() ] );imagesJComboBox.getSelectedIndex() ] );imagesJComboBox.getSelectedIndex() ] );
42 } } } } // // // // fim do método fim do método fim do método fim do método itemStateChangeditemStateChangeditemStateChangeditemStateChanged
43 } } } } // // // // fim da classe interna anônimafim da classe interna anônimafim da classe interna anônimafim da classe interna anônima
44 ); ); ); ); // // // // fim da chamada para fim da chamada para fim da chamada para fim da chamada para addItemListeneraddItemListeneraddItemListeneraddItemListener
45
46 add( imagesJComboBox ); add( imagesJComboBox ); add( imagesJComboBox ); add( imagesJComboBox ); // ad// ad// ad// adiciona a caixa de combinaçiciona a caixa de combinaçiciona a caixa de combinaçiciona a caixa de combinaçãoãoãoão aaaao JFrameo JFrameo JFrameo JFrame
47 label = label = label = label = newnewnewnew JLabel( icons[ JLabel( icons[ JLabel( icons[ JLabel( icons[ 0000 ] ); ] ); ] ); ] ); // // // // exibe o primeiroexibe o primeiroexibe o primeiroexibe o primeiro ííííconconconconeeee
48 add( label ); add( label ); add( label ); add( label ); // ad// ad// ad// adiciona rótulo aoiciona rótulo aoiciona rótulo aoiciona rótulo ao JFrame JFrame JFrame JFrame
49 } } } } // // // // fim dofim dofim dofim do construtor construtor construtor construtor ComboBoxFrame ComboBoxFrame ComboBoxFrame ComboBoxFrame
50 } } } } // // // // fim da classe fim da classe fim da classe fim da classe ComboBoxFrameComboBoxFrameComboBoxFrameComboBoxFrame
Declara o método
Introdução à Tecnologia Java – 02/2012
Exemplo29 imagesJComboBox = imagesJComboBox = imagesJComboBox = imagesJComboBox = newnewnewnew JComboBox( names ); JComboBox( names ); JComboBox( names ); JComboBox( names ); // // // // configura aconfigura aconfigura aconfigura a JComboBox JComboBox JComboBox JComboBox
30 imagesJComboBox.setMaximumRowCount( imagesJComboBox.setMaximumRowCount( imagesJComboBox.setMaximumRowCount( imagesJComboBox.setMaximumRowCount( 3333 ); ); ); ); // // // // exibe trÊs linhasexibe trÊs linhasexibe trÊs linhasexibe trÊs linhas
31
32 imagesJComboBox.addItemListener(imagesJComboBox.addItemListener(imagesJComboBox.addItemListener(imagesJComboBox.addItemListener(
33 newnewnewnew ItemListe ItemListe ItemListe ItemListener() ner() ner() ner() // // // // classe interna anÔnimaclasse interna anÔnimaclasse interna anÔnimaclasse interna anÔnima
34 {{{{
35 // // // // trata evento trata evento trata evento trata evento JComboBoxJComboBoxJComboBoxJComboBox
36 publicpublicpublicpublic voidvoidvoidvoid itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event )
37 {{{{
38 // // // // determina se caixa de seleção está marcada ou nãodetermina se caixa de seleção está marcada ou nãodetermina se caixa de seleção está marcada ou nãodetermina se caixa de seleção está marcada ou não
Cria JComboBox e configura a
contagem máxima de linhas
Cria a classe interna anônima como
o handler de evento
Declara o método itemStateChanged
Celso Olivete Júnior 123
38 // // // // determina se caixa de seleção está marcada ou nãodetermina se caixa de seleção está marcada ou nãodetermina se caixa de seleção está marcada ou nãodetermina se caixa de seleção está marcada ou não
39 ifififif ( event.getStateChange() == ( event.getStateChange() == ( event.getStateChange() == ( event.getStateChange() == ItemEvent.SELECTEDItemEvent.SELECTEDItemEvent.SELECTEDItemEvent.SELECTED ) ) ) )
40 llllabel.setIcon( icons[abel.setIcon( icons[abel.setIcon( icons[abel.setIcon( icons[
41 imagesJComboBox.getSelectedIndex() ] );imagesJComboBox.getSelectedIndex() ] );imagesJComboBox.getSelectedIndex() ] );imagesJComboBox.getSelectedIndex() ] );
42 } } } } // // // // fim do método fim do método fim do método fim do método itemStateChangeditemStateChangeditemStateChangeditemStateChanged
43 } } } } // // // // fim da classe interna anônimafim da classe interna anônimafim da classe interna anônimafim da classe interna anônima
44 ); ); ); ); // // // // fim da chamada para fim da chamada para fim da chamada para fim da chamada para addItemListeneraddItemListeneraddItemListeneraddItemListener
45
46 add( imagesJComboBox ); add( imagesJComboBox ); add( imagesJComboBox ); add( imagesJComboBox ); // ad// ad// ad// adiciona a caixa de combinaçiciona a caixa de combinaçiciona a caixa de combinaçiciona a caixa de combinaçãoãoãoão aaaao JFrameo JFrameo JFrameo JFrame
47 label = label = label = label = newnewnewnew JLabel( icons[ JLabel( icons[ JLabel( icons[ JLabel( icons[ 0000 ] ); ] ); ] ); ] ); // // // // exibe o primeiroexibe o primeiroexibe o primeiroexibe o primeiro ííííconconconconeeee
48 add( label ); add( label ); add( label ); add( label ); // ad// ad// ad// adiciona rótulo aoiciona rótulo aoiciona rótulo aoiciona rótulo ao JFrame JFrame JFrame JFrame
49 } } } } // // // // fim dofim dofim dofim do construtor construtor construtor construtor ComboBoxFrame ComboBoxFrame ComboBoxFrame ComboBoxFrame
50 } } } } // // // // fim da classe fim da classe fim da classe fim da classe ComboBoxFrameComboBoxFrameComboBoxFrameComboBoxFrame
Declara o método
Testa a alteração de estado da JComboBox
Introdução à Tecnologia Java – 02/2012
Exemplo29 imagesJComboBox = imagesJComboBox = imagesJComboBox = imagesJComboBox = newnewnewnew JComboBox( names ); JComboBox( names ); JComboBox( names ); JComboBox( names ); // // // // configura aconfigura aconfigura aconfigura a JComboBox JComboBox JComboBox JComboBox
30 imagesJComboBox.setMaximumRowCount( imagesJComboBox.setMaximumRowCount( imagesJComboBox.setMaximumRowCount( imagesJComboBox.setMaximumRowCount( 3333 ); ); ); ); // // // // exibe trÊs linhasexibe trÊs linhasexibe trÊs linhasexibe trÊs linhas
31
32 imagesJComboBox.addItemListener(imagesJComboBox.addItemListener(imagesJComboBox.addItemListener(imagesJComboBox.addItemListener(
33 newnewnewnew ItemListe ItemListe ItemListe ItemListener() ner() ner() ner() // // // // classe interna anÔnimaclasse interna anÔnimaclasse interna anÔnimaclasse interna anÔnima
34 {{{{
35 // // // // trata evento trata evento trata evento trata evento JComboBoxJComboBoxJComboBoxJComboBox
36 publicpublicpublicpublic voidvoidvoidvoid itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event ) itemStateChanged( ItemEvent event )
37 {{{{
38 // // // // determina se caixa de seleção está marcada ou nãodetermina se caixa de seleção está marcada ou nãodetermina se caixa de seleção está marcada ou nãodetermina se caixa de seleção está marcada ou não
Cria JComboBox e configura a
contagem máxima de linhas
Cria a classe interna anônima como
o handler de evento
Declara o método itemStateChanged
Celso Olivete Júnior 124
38 // // // // determina se caixa de seleção está marcada ou nãodetermina se caixa de seleção está marcada ou nãodetermina se caixa de seleção está marcada ou nãodetermina se caixa de seleção está marcada ou não
39 ifififif ( event.getStateChange() == ( event.getStateChange() == ( event.getStateChange() == ( event.getStateChange() == ItemEvent.SELECTEDItemEvent.SELECTEDItemEvent.SELECTEDItemEvent.SELECTED ) ) ) )
40 llllabel.setIcon( icons[abel.setIcon( icons[abel.setIcon( icons[abel.setIcon( icons[
41 imagesJComboBox.getSelectedIndex() ] );imagesJComboBox.getSelectedIndex() ] );imagesJComboBox.getSelectedIndex() ] );imagesJComboBox.getSelectedIndex() ] );
42 } } } } // // // // fim do método fim do método fim do método fim do método itemStateChangeditemStateChangeditemStateChangeditemStateChanged
43 } } } } // // // // fim da classe interna anônimafim da classe interna anônimafim da classe interna anônimafim da classe interna anônima
44 ); ); ); ); // // // // fim da chamada para fim da chamada para fim da chamada para fim da chamada para addItemListeneraddItemListeneraddItemListeneraddItemListener
45
46 add( imagesJComboBox ); add( imagesJComboBox ); add( imagesJComboBox ); add( imagesJComboBox ); // ad// ad// ad// adiciona a caixa de combinaçiciona a caixa de combinaçiciona a caixa de combinaçiciona a caixa de combinaçãoãoãoão aaaao JFrameo JFrameo JFrameo JFrame
47 label = label = label = label = newnewnewnew JLabel( icons[ JLabel( icons[ JLabel( icons[ JLabel( icons[ 0000 ] ); ] ); ] ); ] ); // // // // exibe o primeiroexibe o primeiroexibe o primeiroexibe o primeiro ííííconconconconeeee
48 add( label ); add( label ); add( label ); add( label ); // ad// ad// ad// adiciona rótulo aoiciona rótulo aoiciona rótulo aoiciona rótulo ao JFrame JFrame JFrame JFrame
49 } } } } // // // // fim dofim dofim dofim do construtor construtor construtor construtor ComboBoxFrame ComboBoxFrame ComboBoxFrame ComboBoxFrame
50 } } } } // // // // fim da classe fim da classe fim da classe fim da classe ComboBoxFrameComboBoxFrameComboBoxFrameComboBoxFrame
Declara o método
O método getSelectedIndexlocaliza o item selecionado
Testa a alteração de estado da JComboBox
Introdução à Tecnologia Java – 02/2012
Exemplo 1 // Fig. 11.22: ComboBoxTest.java// Fig. 11.22: ComboBoxTest.java// Fig. 11.22: ComboBoxTest.java// Fig. 11.22: ComboBoxTest.java
2 // Test// Test// Test// Testandoandoandoando ComboBoxFrame. ComboBoxFrame. ComboBoxFrame. ComboBoxFrame.
3 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
4
5 publicpublicpublicpublic classclassclassclass ComboBoxTest ComboBoxTest ComboBoxTest ComboBoxTest
6 {{{{
7 public static voidpublic static voidpublic static voidpublic static void main( String args[] ) main( String args[] ) main( String args[] ) main( String args[] )
8 { { { {
9 ComboBoxFrame comboBoxFrame = ComboBoxFrame comboBoxFrame = ComboBoxFrame comboBoxFrame = ComboBoxFrame comboBoxFrame = newnewnewnew ComboBoxFrame() ComboBoxFrame() ComboBoxFrame() ComboBoxFrame(); ; ; ;
10 comboBoxFrame.setDefaultCloseOperation( comboBoxFrame.setDefaultCloseOperation( comboBoxFrame.setDefaultCloseOperation( comboBoxFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSE ); ); ); );
Celso Olivete Júnior 125
10 comboBoxFrame.setDefaultCloseOperation( comboBoxFrame.setDefaultCloseOperation( comboBoxFrame.setDefaultCloseOperation( comboBoxFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSE ); ); ); );
11 comboBoxFrame.setSize( comboBoxFrame.setSize( comboBoxFrame.setSize( comboBoxFrame.setSize( 350350350350, , , , 150150150150 ); ); ); ); // // // // configura o tamanho doconfigura o tamanho doconfigura o tamanho doconfigura o tamanho do frame frame frame frame
12 comboBoxFrame.setVisible( comboBoxFrame.setVisible( comboBoxFrame.setVisible( comboBoxFrame.setVisible( truetruetruetrue ); ); ); ); // // // // exibe o exibe o exibe o exibe o frameframeframeframe
13 } } } } // // // // fim de fim de fim de fim de mainmainmainmain
14 } } } } // // // // fimfimfimfim da classe da classe da classe da classe ComboBoxTestComboBoxTestComboBoxTestComboBoxTest
Barra de rolagem para rolar pelos
itens na lista
setas de rolagem
caixa de rolagem
Introdução à Tecnologia Java – 02/2012
JList
• Lista:•Exibe uma série de itens dentre os quais usuário podeselecionar um ou mais.
•Implementada pela classe Jlist.
•Permite listas de seleção única ou listas de múltipla•Permite listas de seleção única ou listas de múltiplaseleção.
•Um ListSelectionEvent ocorre quando um item éselecionado.
•Tratado por um ListSelectionListener e passado para o métodovalueChanged.
Celso Olivete Júnior 126
Introdução à Tecnologia Java – 02/2012
Exemplo1// Selecionando cores a partir de uma JList.// Selecionando cores a partir de uma JList.// Selecionando cores a partir de uma JList.// Selecionando cores a partir de uma JList.
2 importimportimportimport java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout;
3 importimportimportimport java.awt.Color; java.awt.Color; java.awt.Color; java.awt.Color;
4 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
5 importimportimportimport javax.swing.JList; javax.swing.JList; javax.swing.JList; javax.swing.JList;
6 importimportimportimport javax.swing.JScrollPane; javax.swing.JScrollPane; javax.swing.JScrollPane; javax.swing.JScrollPane;
7 importimportimportimport javax.swing.event.ListSelectionListener; javax.swing.event.ListSelectionListener; javax.swing.event.ListSelectionListener; javax.swing.event.ListSelectionListener;
8 importimportimportimport javax.swing.event.ListSelectionEvent; javax.swing.event.ListSelectionEvent; javax.swing.event.ListSelectionEvent; javax.swing.event.ListSelectionEvent;
9 importimportimportimport javax.swing.ListSelectionModel; javax.swing.ListSelectionModel; javax.swing.ListSelectionModel; javax.swing.ListSelectionModel;
Celso Olivete Júnior 127
10
11 publicpublicpublicpublic classclassclassclass ListFrame ListFrame ListFrame ListFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
12 {{{{
13 privateprivateprivateprivate JList colorJList; JList colorJList; JList colorJList; JList colorJList; // list// list// list// lista para exibir coresa para exibir coresa para exibir coresa para exibir cores
14 privateprivateprivateprivate finalfinalfinalfinal String colorNames[] = { String colorNames[] = { String colorNames[] = { String colorNames[] = { """"Black"Black"Black"Black", , , , "Blue""Blue""Blue""Blue", , , , "Cyan""Cyan""Cyan""Cyan", , , ,
15 "Dark Gray""Dark Gray""Dark Gray""Dark Gray", , , , "Gray""Gray""Gray""Gray", , , , "Green""Green""Green""Green", , , , "Light Gray""Light Gray""Light Gray""Light Gray", , , , "Magenta""Magenta""Magenta""Magenta",,,,
16 "Orange""Orange""Orange""Orange", , , , "Pink""Pink""Pink""Pink", , , , "Red""Red""Red""Red", , , , "White""White""White""White", , , , "Yellow""Yellow""Yellow""Yellow" }; }; }; };
17 privateprivateprivateprivate finalfinalfinalfinal Color colors[] = { Color colors[] = { Color colors[] = { Color colors[] = { Color.BLACKColor.BLACKColor.BLACKColor.BLACK, , , , Color.BLUEColor.BLUEColor.BLUEColor.BLUE, , , , Color.CYANColor.CYANColor.CYANColor.CYAN, , , ,
18 Color.DARK_GRAYColor.DARK_GRAYColor.DARK_GRAYColor.DARK_GRAY, , , , CCCColor.GRAYolor.GRAYolor.GRAYolor.GRAY, , , , Color.GREENColor.GREENColor.GREENColor.GREEN, , , , Color.LIGHT_GRAYColor.LIGHT_GRAYColor.LIGHT_GRAYColor.LIGHT_GRAY, , , ,
19 Color.MAGENTAColor.MAGENTAColor.MAGENTAColor.MAGENTA, , , , Color.ORANGEColor.ORANGEColor.ORANGEColor.ORANGE, , , , Color.PINKColor.PINKColor.PINKColor.PINK, , , , Color.REDColor.REDColor.REDColor.RED, , , , Color.WHITEColor.WHITEColor.WHITEColor.WHITE, , , ,
20 Color.YELLOWColor.YELLOWColor.YELLOWColor.YELLOW }; }; }; };
21 // construtor ListFrame adiciona JScrollPane que contém JList ao JFrame // construtor ListFrame adiciona JScrollPane que contém JList ao JFrame // construtor ListFrame adiciona JScrollPane que contém JList ao JFrame // construtor ListFrame adiciona JScrollPane que contém JList ao JFrame
22 publicpublicpublicpublic ListFrame() ListFrame() ListFrame() ListFrame() { { { {
23 supersupersupersuper( ( ( ( "List Test""List Test""List Test""List Test" ); ); ); );
24 setLayout( setLayout( setLayout( setLayout( newnewnewnew FlowLayout() ); FlowLayout() ); FlowLayout() ); FlowLayout() ); // // // // configura o layout de frameconfigura o layout de frameconfigura o layout de frameconfigura o layout de frame
Introdução à Tecnologia Java – 02/2012
Exemplo1// Selecionando cores a partir de uma JList.// Selecionando cores a partir de uma JList.// Selecionando cores a partir de uma JList.// Selecionando cores a partir de uma JList.
2 importimportimportimport java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout;
3 importimportimportimport java.awt.Color; java.awt.Color; java.awt.Color; java.awt.Color;
4 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
5 importimportimportimport javax.swing.JList; javax.swing.JList; javax.swing.JList; javax.swing.JList;
6 importimportimportimport javax.swing.JScrollPane; javax.swing.JScrollPane; javax.swing.JScrollPane; javax.swing.JScrollPane;
7 importimportimportimport javax.swing.event.ListSelectionListener; javax.swing.event.ListSelectionListener; javax.swing.event.ListSelectionListener; javax.swing.event.ListSelectionListener;
8 importimportimportimport javax.swing.event.ListSelectionEvent; javax.swing.event.ListSelectionEvent; javax.swing.event.ListSelectionEvent; javax.swing.event.ListSelectionEvent;
9 importimportimportimport javax.swing.ListSelectionModel; javax.swing.ListSelectionModel; javax.swing.ListSelectionModel; javax.swing.ListSelectionModel;
Celso Olivete Júnior 128
10
11 publicpublicpublicpublic classclassclassclass ListFrame ListFrame ListFrame ListFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
12 {{{{
13 privateprivateprivateprivate JList colorJList; JList colorJList; JList colorJList; JList colorJList; // list// list// list// lista para exibir coresa para exibir coresa para exibir coresa para exibir cores
14 privateprivateprivateprivate finalfinalfinalfinal String colorNames[] = { String colorNames[] = { String colorNames[] = { String colorNames[] = { """"Black"Black"Black"Black", , , , "Blue""Blue""Blue""Blue", , , , "Cyan""Cyan""Cyan""Cyan", , , ,
15 "Dark Gray""Dark Gray""Dark Gray""Dark Gray", , , , "Gray""Gray""Gray""Gray", , , , "Green""Green""Green""Green", , , , "Light Gray""Light Gray""Light Gray""Light Gray", , , , "Magenta""Magenta""Magenta""Magenta",,,,
16 "Orange""Orange""Orange""Orange", , , , "Pink""Pink""Pink""Pink", , , , "Red""Red""Red""Red", , , , "White""White""White""White", , , , "Yellow""Yellow""Yellow""Yellow" }; }; }; };
17 privateprivateprivateprivate finalfinalfinalfinal Color colors[] = { Color colors[] = { Color colors[] = { Color colors[] = { Color.BLACKColor.BLACKColor.BLACKColor.BLACK, , , , Color.BLUEColor.BLUEColor.BLUEColor.BLUE, , , , Color.CYANColor.CYANColor.CYANColor.CYAN, , , ,
18 Color.DARK_GRAYColor.DARK_GRAYColor.DARK_GRAYColor.DARK_GRAY, , , , CCCColor.GRAYolor.GRAYolor.GRAYolor.GRAY, , , , Color.GREENColor.GREENColor.GREENColor.GREEN, , , , Color.LIGHT_GRAYColor.LIGHT_GRAYColor.LIGHT_GRAYColor.LIGHT_GRAY, , , ,
19 Color.MAGENTAColor.MAGENTAColor.MAGENTAColor.MAGENTA, , , , Color.ORANGEColor.ORANGEColor.ORANGEColor.ORANGE, , , , Color.PINKColor.PINKColor.PINKColor.PINK, , , , Color.REDColor.REDColor.REDColor.RED, , , , Color.WHITEColor.WHITEColor.WHITEColor.WHITE, , , ,
20 Color.YELLOWColor.YELLOWColor.YELLOWColor.YELLOW }; }; }; };
21 // construtor ListFrame adiciona JScrollPane que contém JList ao JFrame // construtor ListFrame adiciona JScrollPane que contém JList ao JFrame // construtor ListFrame adiciona JScrollPane que contém JList ao JFrame // construtor ListFrame adiciona JScrollPane que contém JList ao JFrame
22 publicpublicpublicpublic ListFrame() ListFrame() ListFrame() ListFrame() { { { {
23 supersupersupersuper( ( ( ( "List Test""List Test""List Test""List Test" ); ); ); );
24 setLayout( setLayout( setLayout( setLayout( newnewnewnew FlowLayout() ); FlowLayout() ); FlowLayout() ); FlowLayout() ); // // // // configura o layout de frameconfigura o layout de frameconfigura o layout de frameconfigura o layout de frame
Declara a variável de instância JList
Introdução à Tecnologia Java – 02/2012
Exemplo25 colorJList = colorJList = colorJList = colorJList = newnewnewnew JList( colorNames ); JList( colorNames ); JList( colorNames ); JList( colorNames ); // cr// cr// cr// cria comia comia comia com colorNames colorNames colorNames colorNames
26 colorJList.setVisibleRowCount( colorJList.setVisibleRowCount( colorJList.setVisibleRowCount( colorJList.setVisibleRowCount( 5555 ); ); ); ); // // // // exibe cinco linhas de uma vezexibe cinco linhas de uma vezexibe cinco linhas de uma vezexibe cinco linhas de uma vez
27
28 // // // // não permite múltiplas seleçõesnão permite múltiplas seleçõesnão permite múltiplas seleçõesnão permite múltiplas seleções
29 colocolocolocolorJList.setSelectionMode( rJList.setSelectionMode( rJList.setSelectionMode( rJList.setSelectionMode( ListSelectionModel.SINGLE_SELECTIONListSelectionModel.SINGLE_SELECTIONListSelectionModel.SINGLE_SELECTIONListSelectionModel.SINGLE_SELECTION ); ); ); );
30
31 // // // // adiciona um JScrollPane que contém JList ao frameadiciona um JScrollPane que contém JList ao frameadiciona um JScrollPane que contém JList ao frameadiciona um JScrollPane que contém JList ao frame
32 add( add( add( add( newnewnewnew JScrollPane( colorJList ) ); JScrollPane( colorJList ) ); JScrollPane( colorJList ) ); JScrollPane( colorJList ) );
33
Celso Olivete Júnior 129
33
34 colorJList.addListSelectionListener( colorJList.addListSelectionListener( colorJList.addListSelectionListener( colorJList.addListSelectionListener(
35 newnewnewnew ListSelectionListener() ListSelectionListener() ListSelectionListener() ListSelectionListener() // // // // classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
36 { { { {
37 // // // // trata eventos de seleção de listatrata eventos de seleção de listatrata eventos de seleção de listatrata eventos de seleção de lista
38 publicpublicpublicpublic voidvoidvoidvoid valueChanged( ListSelectionEvent event ) valueChanged( ListSelectionEvent event ) valueChanged( ListSelectionEvent event ) valueChanged( ListSelectionEvent event )
39 { { { {
40 getContentPane() getContentPane() getContentPane() getContentPane().setBackground( .setBackground( .setBackground( .setBackground(
41 colors[ colors[ colors[ colors[ colorJList.getSelectedIndex()colorJList.getSelectedIndex()colorJList.getSelectedIndex()colorJList.getSelectedIndex() ] ); ] ); ] ); ] );
42 } } } } // // // // fim do método fim do método fim do método fim do método valueChangedvalueChangedvalueChangedvalueChanged
43 } } } } // // // // fim da classe interna anfim da classe interna anfim da classe interna anfim da classe interna anôôôônimanimanimanima
44 ); ); ); ); // // // // fim da chamada para fim da chamada para fim da chamada para fim da chamada para addListSelectionListeneraddListSelectionListeneraddListSelectionListeneraddListSelectionListener
45 } } } } // // // // fim do construtor fim do construtor fim do construtor fim do construtor ListFrame ListFrame ListFrame ListFrame
46 } } } } // // // // fim da classe fim da classe fim da classe fim da classe ListFrameListFrameListFrameListFrame
Introdução à Tecnologia Java – 02/2012
Exemplo25 colorJList = colorJList = colorJList = colorJList = newnewnewnew JList( colorNames ); JList( colorNames ); JList( colorNames ); JList( colorNames ); // cr// cr// cr// cria comia comia comia com colorNames colorNames colorNames colorNames
26 colorJList.setVisibleRowCount( colorJList.setVisibleRowCount( colorJList.setVisibleRowCount( colorJList.setVisibleRowCount( 5555 ); ); ); ); // // // // exibe cinco linhas de uma vezexibe cinco linhas de uma vezexibe cinco linhas de uma vezexibe cinco linhas de uma vez
27
28 // // // // não permite múltiplas seleçõesnão permite múltiplas seleçõesnão permite múltiplas seleçõesnão permite múltiplas seleções
29 colocolocolocolorJList.setSelectionMode( rJList.setSelectionMode( rJList.setSelectionMode( rJList.setSelectionMode( ListSelectionModel.SINGLE_SELECTIONListSelectionModel.SINGLE_SELECTIONListSelectionModel.SINGLE_SELECTIONListSelectionModel.SINGLE_SELECTION ); ); ); );
30
31 // // // // adiciona um JScrollPane que contém JList ao frameadiciona um JScrollPane que contém JList ao frameadiciona um JScrollPane que contém JList ao frameadiciona um JScrollPane que contém JList ao frame
32 add( add( add( add( newnewnewnew JScrollPane( colorJList ) ); JScrollPane( colorJList ) ); JScrollPane( colorJList ) ); JScrollPane( colorJList ) );
33
Cria JList
Celso Olivete Júnior 130
33
34 colorJList.addListSelectionListener( colorJList.addListSelectionListener( colorJList.addListSelectionListener( colorJList.addListSelectionListener(
35 newnewnewnew ListSelectionListener() ListSelectionListener() ListSelectionListener() ListSelectionListener() // // // // classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
36 { { { {
37 // // // // trata eventos de seleção de listatrata eventos de seleção de listatrata eventos de seleção de listatrata eventos de seleção de lista
38 publicpublicpublicpublic voidvoidvoidvoid valueChanged( ListSelectionEvent event ) valueChanged( ListSelectionEvent event ) valueChanged( ListSelectionEvent event ) valueChanged( ListSelectionEvent event )
39 { { { {
40 getContentPane() getContentPane() getContentPane() getContentPane().setBackground( .setBackground( .setBackground( .setBackground(
41 colors[ colors[ colors[ colors[ colorJList.getSelectedIndex()colorJList.getSelectedIndex()colorJList.getSelectedIndex()colorJList.getSelectedIndex() ] ); ] ); ] ); ] );
42 } } } } // // // // fim do método fim do método fim do método fim do método valueChangedvalueChangedvalueChangedvalueChanged
43 } } } } // // // // fim da classe interna anfim da classe interna anfim da classe interna anfim da classe interna anôôôônimanimanimanima
44 ); ); ); ); // // // // fim da chamada para fim da chamada para fim da chamada para fim da chamada para addListSelectionListeneraddListSelectionListeneraddListSelectionListeneraddListSelectionListener
45 } } } } // // // // fim do construtor fim do construtor fim do construtor fim do construtor ListFrame ListFrame ListFrame ListFrame
46 } } } } // // // // fim da classe fim da classe fim da classe fim da classe ListFrameListFrameListFrameListFrame
Introdução à Tecnologia Java – 02/2012
Exemplo25 colorJList = colorJList = colorJList = colorJList = newnewnewnew JList( colorNames ); JList( colorNames ); JList( colorNames ); JList( colorNames ); // cr// cr// cr// cria comia comia comia com colorNames colorNames colorNames colorNames
26 colorJList.setVisibleRowCount( colorJList.setVisibleRowCount( colorJList.setVisibleRowCount( colorJList.setVisibleRowCount( 5555 ); ); ); ); // // // // exibe cinco linhas de uma vezexibe cinco linhas de uma vezexibe cinco linhas de uma vezexibe cinco linhas de uma vez
27
28 // // // // não permite múltiplas seleçõesnão permite múltiplas seleçõesnão permite múltiplas seleçõesnão permite múltiplas seleções
29 colocolocolocolorJList.setSelectionMode( rJList.setSelectionMode( rJList.setSelectionMode( rJList.setSelectionMode( ListSelectionModel.SINGLE_SELECTIONListSelectionModel.SINGLE_SELECTIONListSelectionModel.SINGLE_SELECTIONListSelectionModel.SINGLE_SELECTION ); ); ); );
30
31 // // // // adiciona um JScrollPane que contém JList ao frameadiciona um JScrollPane que contém JList ao frameadiciona um JScrollPane que contém JList ao frameadiciona um JScrollPane que contém JList ao frame
32 add( add( add( add( newnewnewnew JScrollPane( colorJList ) ); JScrollPane( colorJList ) ); JScrollPane( colorJList ) ); JScrollPane( colorJList ) );
33
Configura o modo de seleção da JList
Cria JList
Celso Olivete Júnior 131
33
34 colorJList.addListSelectionListener( colorJList.addListSelectionListener( colorJList.addListSelectionListener( colorJList.addListSelectionListener(
35 newnewnewnew ListSelectionListener() ListSelectionListener() ListSelectionListener() ListSelectionListener() // // // // classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
36 { { { {
37 // // // // trata eventos de seleção de listatrata eventos de seleção de listatrata eventos de seleção de listatrata eventos de seleção de lista
38 publicpublicpublicpublic voidvoidvoidvoid valueChanged( ListSelectionEvent event ) valueChanged( ListSelectionEvent event ) valueChanged( ListSelectionEvent event ) valueChanged( ListSelectionEvent event )
39 { { { {
40 getContentPane() getContentPane() getContentPane() getContentPane().setBackground( .setBackground( .setBackground( .setBackground(
41 colors[ colors[ colors[ colors[ colorJList.getSelectedIndex()colorJList.getSelectedIndex()colorJList.getSelectedIndex()colorJList.getSelectedIndex() ] ); ] ); ] ); ] );
42 } } } } // // // // fim do método fim do método fim do método fim do método valueChangedvalueChangedvalueChangedvalueChanged
43 } } } } // // // // fim da classe interna anfim da classe interna anfim da classe interna anfim da classe interna anôôôônimanimanimanima
44 ); ); ); ); // // // // fim da chamada para fim da chamada para fim da chamada para fim da chamada para addListSelectionListeneraddListSelectionListeneraddListSelectionListeneraddListSelectionListener
45 } } } } // // // // fim do construtor fim do construtor fim do construtor fim do construtor ListFrame ListFrame ListFrame ListFrame
46 } } } } // // // // fim da classe fim da classe fim da classe fim da classe ListFrameListFrameListFrameListFrame
Introdução à Tecnologia Java – 02/2012
Exemplo25 colorJList = colorJList = colorJList = colorJList = newnewnewnew JList( colorNames ); JList( colorNames ); JList( colorNames ); JList( colorNames ); // cr// cr// cr// cria comia comia comia com colorNames colorNames colorNames colorNames
26 colorJList.setVisibleRowCount( colorJList.setVisibleRowCount( colorJList.setVisibleRowCount( colorJList.setVisibleRowCount( 5555 ); ); ); ); // // // // exibe cinco linhas de uma vezexibe cinco linhas de uma vezexibe cinco linhas de uma vezexibe cinco linhas de uma vez
27
28 // // // // não permite múltiplas seleçõesnão permite múltiplas seleçõesnão permite múltiplas seleçõesnão permite múltiplas seleções
29 colocolocolocolorJList.setSelectionMode( rJList.setSelectionMode( rJList.setSelectionMode( rJList.setSelectionMode( ListSelectionModel.SINGLE_SELECTIONListSelectionModel.SINGLE_SELECTIONListSelectionModel.SINGLE_SELECTIONListSelectionModel.SINGLE_SELECTION ); ); ); );
30
31 // // // // adiciona um JScrollPane que contém JList ao frameadiciona um JScrollPane que contém JList ao frameadiciona um JScrollPane que contém JList ao frameadiciona um JScrollPane que contém JList ao frame
32 add( add( add( add( newnewnewnew JScrollPane( colorJList ) ); JScrollPane( colorJList ) ); JScrollPane( colorJList ) ); JScrollPane( colorJList ) );
33
Configura o modo de seleção da JList
Cria JList
Celso Olivete Júnior 132
33
34 colorJList.addListSelectionListener( colorJList.addListSelectionListener( colorJList.addListSelectionListener( colorJList.addListSelectionListener(
35 newnewnewnew ListSelectionListener() ListSelectionListener() ListSelectionListener() ListSelectionListener() // // // // classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
36 { { { {
37 // // // // trata eventos de seleção de listatrata eventos de seleção de listatrata eventos de seleção de listatrata eventos de seleção de lista
38 publicpublicpublicpublic voidvoidvoidvoid valueChanged( ListSelectionEvent event ) valueChanged( ListSelectionEvent event ) valueChanged( ListSelectionEvent event ) valueChanged( ListSelectionEvent event )
39 { { { {
40 getContentPane() getContentPane() getContentPane() getContentPane().setBackground( .setBackground( .setBackground( .setBackground(
41 colors[ colors[ colors[ colors[ colorJList.getSelectedIndex()colorJList.getSelectedIndex()colorJList.getSelectedIndex()colorJList.getSelectedIndex() ] ); ] ); ] ); ] );
42 } } } } // // // // fim do método fim do método fim do método fim do método valueChangedvalueChangedvalueChangedvalueChanged
43 } } } } // // // // fim da classe interna anfim da classe interna anfim da classe interna anfim da classe interna anôôôônimanimanimanima
44 ); ); ); ); // // // // fim da chamada para fim da chamada para fim da chamada para fim da chamada para addListSelectionListeneraddListSelectionListeneraddListSelectionListeneraddListSelectionListener
45 } } } } // // // // fim do construtor fim do construtor fim do construtor fim do construtor ListFrame ListFrame ListFrame ListFrame
46 } } } } // // // // fim da classe fim da classe fim da classe fim da classe ListFrameListFrameListFrameListFrame
Adiciona JList a ScrollPane e
a adiciona à aplicação
Introdução à Tecnologia Java – 02/2012
Exemplo25 colorJList = colorJList = colorJList = colorJList = newnewnewnew JList( colorNames ); JList( colorNames ); JList( colorNames ); JList( colorNames ); // cr// cr// cr// cria comia comia comia com colorNames colorNames colorNames colorNames
26 colorJList.setVisibleRowCount( colorJList.setVisibleRowCount( colorJList.setVisibleRowCount( colorJList.setVisibleRowCount( 5555 ); ); ); ); // // // // exibe cinco linhas de uma vezexibe cinco linhas de uma vezexibe cinco linhas de uma vezexibe cinco linhas de uma vez
27
28 // // // // não permite múltiplas seleçõesnão permite múltiplas seleçõesnão permite múltiplas seleçõesnão permite múltiplas seleções
29 colocolocolocolorJList.setSelectionMode( rJList.setSelectionMode( rJList.setSelectionMode( rJList.setSelectionMode( ListSelectionModel.SINGLE_SELECTIONListSelectionModel.SINGLE_SELECTIONListSelectionModel.SINGLE_SELECTIONListSelectionModel.SINGLE_SELECTION ); ); ); );
30
31 // // // // adiciona um JScrollPane que contém JList ao frameadiciona um JScrollPane que contém JList ao frameadiciona um JScrollPane que contém JList ao frameadiciona um JScrollPane que contém JList ao frame
32 add( add( add( add( newnewnewnew JScrollPane( colorJList ) ); JScrollPane( colorJList ) ); JScrollPane( colorJList ) ); JScrollPane( colorJList ) );
33
Configura o modo de seleção da JList
Cria JList
Celso Olivete Júnior 133
33
34 colorJList.addListSelectionListener( colorJList.addListSelectionListener( colorJList.addListSelectionListener( colorJList.addListSelectionListener(
35 newnewnewnew ListSelectionListener() ListSelectionListener() ListSelectionListener() ListSelectionListener() // // // // classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
36 { { { {
37 // // // // trata eventos de seleção de listatrata eventos de seleção de listatrata eventos de seleção de listatrata eventos de seleção de lista
38 publicpublicpublicpublic voidvoidvoidvoid valueChanged( ListSelectionEvent event ) valueChanged( ListSelectionEvent event ) valueChanged( ListSelectionEvent event ) valueChanged( ListSelectionEvent event )
39 { { { {
40 getContentPane() getContentPane() getContentPane() getContentPane().setBackground( .setBackground( .setBackground( .setBackground(
41 colors[ colors[ colors[ colors[ colorJList.getSelectedIndex()colorJList.getSelectedIndex()colorJList.getSelectedIndex()colorJList.getSelectedIndex() ] ); ] ); ] ); ] );
42 } } } } // // // // fim do método fim do método fim do método fim do método valueChangedvalueChangedvalueChangedvalueChanged
43 } } } } // // // // fim da classe interna anfim da classe interna anfim da classe interna anfim da classe interna anôôôônimanimanimanima
44 ); ); ); ); // // // // fim da chamada para fim da chamada para fim da chamada para fim da chamada para addListSelectionListeneraddListSelectionListeneraddListSelectionListeneraddListSelectionListener
45 } } } } // // // // fim do construtor fim do construtor fim do construtor fim do construtor ListFrame ListFrame ListFrame ListFrame
46 } } } } // // // // fim da classe fim da classe fim da classe fim da classe ListFrameListFrameListFrameListFrame
Adiciona JList a ScrollPane e
a adiciona à aplicação
Obtém o índice do item selecionado
Introdução à Tecnologia Java – 02/2012
Exemplo 1 // Fig. 11.24: ListTest.java// Fig. 11.24: ListTest.java// Fig. 11.24: ListTest.java// Fig. 11.24: ListTest.java
2 // Selec// Selec// Selec// Selecionando cores a partir de umaionando cores a partir de umaionando cores a partir de umaionando cores a partir de uma JList. JList. JList. JList.
3 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
4
5 publicpublicpublicpublic classclassclassclass ListTest ListTest ListTest ListTest
6 {{{{
7 publicpublicpublicpublic staticstaticstaticstatic voidvoidvoidvoid main( String args[] ) main( String args[] ) main( String args[] ) main( String args[] )
8 { { { {
Celso Olivete Júnior 134
9 ListFrame listFrame = ListFrame listFrame = ListFrame listFrame = ListFrame listFrame = newnewnewnew ListFrame(); ListFrame(); ListFrame(); ListFrame(); // cr// cr// cr// criaiaiaia ListFrame ListFrame ListFrame ListFrame
10 listFrame.setDefaultCloseOperation( listFrame.setDefaultCloseOperation( listFrame.setDefaultCloseOperation( listFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSE ); ); ); );
11 listFrame.setSize( listFrame.setSize( listFrame.setSize( listFrame.setSize( 350350350350, , , , 150150150150 ); ); ); ); // // // // configura tamanho doconfigura tamanho doconfigura tamanho doconfigura tamanho do frame frame frame frame
12 listFrame.setVisible( listFrame.setVisible( listFrame.setVisible( listFrame.setVisible( truetruetruetrue ); ); ); ); // // // // exibe o exibe o exibe o exibe o frameframeframeframe
13 } } } } // // // // fim de fim de fim de fim de mainmainmainmain
14 } } } } // // // // ffffim da classe im da classe im da classe im da classe ListTestListTestListTestListTest
Introdução à Tecnologia Java – 02/2012
Listas de seleção múltipla
•Permite que usuários selecionem vários itens.
•Seleção de um único intervalo que permite
apenas um intervalo contínuo de itens.
•Seleção de múltiplos intervalos que permite que
qualquer conjunto de elementos seja
selecionado.
Celso Olivete Júnior 135
Introdução à Tecnologia Java – 02/2012
Exemplo 1 // Fig. 11.25: MultipleSelectionFrame.java// Fig. 11.25: MultipleSelectionFrame.java// Fig. 11.25: MultipleSelectionFrame.java// Fig. 11.25: MultipleSelectionFrame.java
2 // Cop// Cop// Cop// Copiandoiandoiandoiando ite ite ite itennnns s s s de umade umade umade uma List List List List para a outrapara a outrapara a outrapara a outra....
3 importimportimportimport java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout;
4 importimportimportimport java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener;
5 importimportimportimport java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent;
6 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
7 importimportimportimport javax.s javax.s javax.s javax.swing.JList;wing.JList;wing.JList;wing.JList;
8 importimportimportimport javax.swing.JButton; javax.swing.JButton; javax.swing.JButton; javax.swing.JButton;
9 importimportimportimport javax.swing.JScrollPane; javax.swing.JScrollPane; javax.swing.JScrollPane; javax.swing.JScrollPane;
10 importimportimportimport javax.swing.ListSelectionModel; javax.swing.ListSelectionModel; javax.swing.ListSelectionModel; javax.swing.ListSelectionModel;
Celso Olivete Júnior 136
10 importimportimportimport javax.swing.ListSelectionModel; javax.swing.ListSelectionModel; javax.swing.ListSelectionModel; javax.swing.ListSelectionModel;
11
12 publicpublicpublicpublic classclassclassclass MultipleSelectionFrame MultipleSelectionFrame MultipleSelectionFrame MultipleSelectionFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
13 {{{{
14 privateprivateprivateprivate JList colorJList; JList colorJList; JList colorJList; JList colorJList; // list// list// list// lista para armazenar nomea para armazenar nomea para armazenar nomea para armazenar nomes de coress de coress de coress de cores
15 privateprivateprivateprivate JList copyJList; JList copyJList; JList copyJList; JList copyJList; // list// list// list// lista para copiar nomes de cores noa para copiar nomes de cores noa para copiar nomes de cores noa para copiar nomes de cores no
16 privateprivateprivateprivate JButton copyJButton; JButton copyJButton; JButton copyJButton; JButton copyJButton; // b// b// b// botão para copiar nomes otão para copiar nomes otão para copiar nomes otão para copiar nomes selecselecselecselecionadosionadosionadosionados
17 privateprivateprivateprivate finalfinalfinalfinal String colorNames[] = { String colorNames[] = { String colorNames[] = { String colorNames[] = { "Black""Black""Black""Black", , , , "Blue""Blue""Blue""Blue", , , , "Cyan""Cyan""Cyan""Cyan", , , ,
18 "Dark Gray""Dark Gray""Dark Gray""Dark Gray", , , , "Gray""Gray""Gray""Gray", , , , "Green""Green""Green""Green", , , , "Light Gray""Light Gray""Light Gray""Light Gray", , , , "Magenta""Magenta""Magenta""Magenta", , , , "Orange""Orange""Orange""Orange", , , ,
19 "Pink""Pink""Pink""Pink", , , , "Red""Red""Red""Red", , , , "White""White""White""White", , , , "Yellow""Yellow""Yellow""Yellow" }; }; }; };
20
21 // // // // construtor construtor construtor construtor MultipleSelectionFrame MultipleSelectionFrame MultipleSelectionFrame MultipleSelectionFrame
22 publicpublicpublicpublic MultipleSelectionFrame() MultipleSelectionFrame() MultipleSelectionFrame() MultipleSelectionFrame()
23 { { { {
24 supersupersupersuper( ( ( ( "Multiple Selection Lists""Multiple Selection Lists""Multiple Selection Lists""Multiple Selection Lists" ); ); ); );
25 setLayout( setLayout( setLayout( setLayout( newnewnewnew FlowLayout() ); FlowLayout() ); FlowLayout() ); FlowLayout() ); // // // // configura configura configura configura layoutlayoutlayoutlayout do frame do frame do frame do frame
26
Introdução à Tecnologia Java – 02/2012
Exemplo27 colorJList = colorJList = colorJList = colorJList = newnewnewnew JList( colorNames ); JList( colorNames ); JList( colorNames ); JList( colorNames ); // // // // armazena nomes de todas as coresarmazena nomes de todas as coresarmazena nomes de todas as coresarmazena nomes de todas as cores
28 colorJList.setVisibleRowCount( colorJList.setVisibleRowCount( colorJList.setVisibleRowCount( colorJList.setVisibleRowCount( 5555 ); ); ); ); // // // // mmmmostra cinco linhasostra cinco linhasostra cinco linhasostra cinco linhas
29 colorJList.setSelectionMode(colorJList.setSelectionMode(colorJList.setSelectionMode(colorJList.setSelectionMode(
30 ListSelectionModel.MULTIPLE_INTERVALListSelectionModel.MULTIPLE_INTERVALListSelectionModel.MULTIPLE_INTERVALListSelectionModel.MULTIPLE_INTERVAL_SELECTION_SELECTION_SELECTION_SELECTION ); ); ); );
31 add( add( add( add( newnewnewnew JScrollPane( colorJList ) ); JScrollPane( colorJList ) ); JScrollPane( colorJList ) ); JScrollPane( colorJList ) ); // ad // ad // ad // adiiiicionacionacionaciona list list list lista coma coma coma com scrollpane scrollpane scrollpane scrollpane
32
33 copyJButton = copyJButton = copyJButton = copyJButton = newnewnewnew JButton( JButton( JButton( JButton( "Copy >>>""Copy >>>""Copy >>>""Copy >>>" ); ); ); ); // cr// cr// cr// criiiiaaaa botão de cópiabotão de cópiabotão de cópiabotão de cópia
34 copyJButton.addActionListener( copyJButton.addActionListener( copyJButton.addActionListener( copyJButton.addActionListener(
35
36 newnewnewnew ActionListener() ActionListener() ActionListener() ActionListener() //////// classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
Celso Olivete Júnior 137
36 newnewnewnew ActionListener() ActionListener() ActionListener() ActionListener() //////// classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
37 { { { {
38 // // // // ttttrata rata rata rata evento de botãoevento de botãoevento de botãoevento de botão
39 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
40 { { { {
41 // // // // coloca valores selecionados na copyJListcoloca valores selecionados na copyJListcoloca valores selecionados na copyJListcoloca valores selecionados na copyJList
42 copyJList.scopyJList.scopyJList.scopyJList.setListData( colorJList.getSelectedValues() );etListData( colorJList.getSelectedValues() );etListData( colorJList.getSelectedValues() );etListData( colorJList.getSelectedValues() );
43 } } } } // // // // fim do métodofim do métodofim do métodofim do método actionPerformedactionPerformedactionPerformedactionPerformed
44 } } } } // // // // fim da classe interna anônimafim da classe interna anônimafim da classe interna anônimafim da classe interna anônima
45 ); ); ); ); // // // // ffffim da chamada paraim da chamada paraim da chamada paraim da chamada para addActionListener addActionListener addActionListener addActionListener
46
Introdução à Tecnologia Java – 02/2012
Exemplo27 colorJList = colorJList = colorJList = colorJList = newnewnewnew JList( colorNames ); JList( colorNames ); JList( colorNames ); JList( colorNames ); // // // // armazena nomes de todas as coresarmazena nomes de todas as coresarmazena nomes de todas as coresarmazena nomes de todas as cores
28 colorJList.setVisibleRowCount( colorJList.setVisibleRowCount( colorJList.setVisibleRowCount( colorJList.setVisibleRowCount( 5555 ); ); ); ); // // // // mmmmostra cinco linhasostra cinco linhasostra cinco linhasostra cinco linhas
29 colorJList.setSelectionMode(colorJList.setSelectionMode(colorJList.setSelectionMode(colorJList.setSelectionMode(
30 ListSelectionModel.MULTIPLE_INTERVALListSelectionModel.MULTIPLE_INTERVALListSelectionModel.MULTIPLE_INTERVALListSelectionModel.MULTIPLE_INTERVAL_SELECTION_SELECTION_SELECTION_SELECTION ); ); ); );
31 add( add( add( add( newnewnewnew JScrollPane( colorJList ) ); JScrollPane( colorJList ) ); JScrollPane( colorJList ) ); JScrollPane( colorJList ) ); // ad // ad // ad // adiiiicionacionacionaciona list list list lista coma coma coma com scrollpane scrollpane scrollpane scrollpane
32
33 copyJButton = copyJButton = copyJButton = copyJButton = newnewnewnew JButton( JButton( JButton( JButton( "Copy >>>""Copy >>>""Copy >>>""Copy >>>" ); ); ); ); // cr// cr// cr// criiiiaaaa botão de cópiabotão de cópiabotão de cópiabotão de cópia
34 copyJButton.addActionListener( copyJButton.addActionListener( copyJButton.addActionListener( copyJButton.addActionListener(
35
36 newnewnewnew ActionListener() ActionListener() ActionListener() ActionListener() //////// classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
Utiliza uma lista de seleção de
múltiplos intervalos
Celso Olivete Júnior 138
36 newnewnewnew ActionListener() ActionListener() ActionListener() ActionListener() //////// classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
37 { { { {
38 // // // // ttttrata rata rata rata evento de botãoevento de botãoevento de botãoevento de botão
39 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
40 { { { {
41 // // // // coloca valores selecionados na copyJListcoloca valores selecionados na copyJListcoloca valores selecionados na copyJListcoloca valores selecionados na copyJList
42 copyJList.scopyJList.scopyJList.scopyJList.setListData( colorJList.getSelectedValues() );etListData( colorJList.getSelectedValues() );etListData( colorJList.getSelectedValues() );etListData( colorJList.getSelectedValues() );
43 } } } } // // // // fim do métodofim do métodofim do métodofim do método actionPerformedactionPerformedactionPerformedactionPerformed
44 } } } } // // // // fim da classe interna anônimafim da classe interna anônimafim da classe interna anônimafim da classe interna anônima
45 ); ); ); ); // // // // ffffim da chamada paraim da chamada paraim da chamada paraim da chamada para addActionListener addActionListener addActionListener addActionListener
46
Introdução à Tecnologia Java – 02/2012
Exemplo27 colorJList = colorJList = colorJList = colorJList = newnewnewnew JList( colorNames ); JList( colorNames ); JList( colorNames ); JList( colorNames ); // // // // armazena nomes de todas as coresarmazena nomes de todas as coresarmazena nomes de todas as coresarmazena nomes de todas as cores
28 colorJList.setVisibleRowCount( colorJList.setVisibleRowCount( colorJList.setVisibleRowCount( colorJList.setVisibleRowCount( 5555 ); ); ); ); // // // // mmmmostra cinco linhasostra cinco linhasostra cinco linhasostra cinco linhas
29 colorJList.setSelectionMode(colorJList.setSelectionMode(colorJList.setSelectionMode(colorJList.setSelectionMode(
30 ListSelectionModel.MULTIPLE_INTERVALListSelectionModel.MULTIPLE_INTERVALListSelectionModel.MULTIPLE_INTERVALListSelectionModel.MULTIPLE_INTERVAL_SELECTION_SELECTION_SELECTION_SELECTION ); ); ); );
31 add( add( add( add( newnewnewnew JScrollPane( colorJList ) ); JScrollPane( colorJList ) ); JScrollPane( colorJList ) ); JScrollPane( colorJList ) ); // ad // ad // ad // adiiiicionacionacionaciona list list list lista coma coma coma com scrollpane scrollpane scrollpane scrollpane
32
33 copyJButton = copyJButton = copyJButton = copyJButton = newnewnewnew JButton( JButton( JButton( JButton( "Copy >>>""Copy >>>""Copy >>>""Copy >>>" ); ); ); ); // cr// cr// cr// criiiiaaaa botão de cópiabotão de cópiabotão de cópiabotão de cópia
34 copyJButton.addActionListener( copyJButton.addActionListener( copyJButton.addActionListener( copyJButton.addActionListener(
35
36 newnewnewnew ActionListener() ActionListener() ActionListener() ActionListener() //////// classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
Utiliza uma lista de seleção de
múltiplos intervalos
Celso Olivete Júnior 139
36 newnewnewnew ActionListener() ActionListener() ActionListener() ActionListener() //////// classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
37 { { { {
38 // // // // ttttrata rata rata rata evento de botãoevento de botãoevento de botãoevento de botão
39 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
40 { { { {
41 // // // // coloca valores selecionados na copyJListcoloca valores selecionados na copyJListcoloca valores selecionados na copyJListcoloca valores selecionados na copyJList
42 copyJList.scopyJList.scopyJList.scopyJList.setListData( colorJList.getSelectedValues() );etListData( colorJList.getSelectedValues() );etListData( colorJList.getSelectedValues() );etListData( colorJList.getSelectedValues() );
43 } } } } // // // // fim do métodofim do métodofim do métodofim do método actionPerformedactionPerformedactionPerformedactionPerformed
44 } } } } // // // // fim da classe interna anônimafim da classe interna anônimafim da classe interna anônimafim da classe interna anônima
45 ); ); ); ); // // // // ffffim da chamada paraim da chamada paraim da chamada paraim da chamada para addActionListener addActionListener addActionListener addActionListener
46
Utiliza os métodos setListDatae getSelectedValues para
copiar valores de uma JList para
outra
Introdução à Tecnologia Java – 02/2012
Exemplo47 add( copyJButton ); add( copyJButton ); add( copyJButton ); add( copyJButton ); // // // // adiciona botão de cópia ao JFrameadiciona botão de cópia ao JFrameadiciona botão de cópia ao JFrameadiciona botão de cópia ao JFrame
48
49 copyJList = copyJList = copyJList = copyJList = newnewnewnew JList(); JList(); JList(); JList(); // // // // cria lista pcria lista pcria lista pcria lista p//// armazenar nomes de cor copiados armazenar nomes de cor copiados armazenar nomes de cor copiados armazenar nomes de cor copiados
50 copyJList.setVisibleRowCount( copyJList.setVisibleRowCount( copyJList.setVisibleRowCount( copyJList.setVisibleRowCount( 5555 ); ); ); ); // // // // mostra mostra mostra mostra 5 5 5 5 linhaslinhaslinhaslinhas
51 copyJList.setFixedCellcopyJList.setFixedCellcopyJList.setFixedCellcopyJList.setFixedCellWidth( Width( Width( Width( 100100100100 ); ); ); ); // // // // configura larguraconfigura larguraconfigura larguraconfigura largura
52 copyJList.setFixedCellHeight( copyJList.setFixedCellHeight( copyJList.setFixedCellHeight( copyJList.setFixedCellHeight( 15151515 ); ); ); ); // // // // configura alturaconfigura alturaconfigura alturaconfigura altura
53 copyJList.setSelectionMode(copyJList.setSelectionMode(copyJList.setSelectionMode(copyJList.setSelectionMode(
54 ListSelectionModel.SINGLE_INTERVAL_SELECTIONListSelectionModel.SINGLE_INTERVAL_SELECTIONListSelectionModel.SINGLE_INTERVAL_SELECTIONListSelectionModel.SINGLE_INTERVAL_SELECTION ); ); ); );
55 add( add( add( add( newnewnewnew JScroll JScroll JScroll JScrollPane( copyJList ) ); Pane( copyJList ) ); Pane( copyJList ) ); Pane( copyJList ) ); // ad// ad// ad// adiciona lista comiciona lista comiciona lista comiciona lista com scrollpane scrollpane scrollpane scrollpane
Celso Olivete Júnior 140
55 add( add( add( add( newnewnewnew JScroll JScroll JScroll JScrollPane( copyJList ) ); Pane( copyJList ) ); Pane( copyJList ) ); Pane( copyJList ) ); // ad// ad// ad// adiciona lista comiciona lista comiciona lista comiciona lista com scrollpane scrollpane scrollpane scrollpane
56 } } } } // // // // fim do construtor fim do construtor fim do construtor fim do construtor MultipleSelectionFrameMultipleSelectionFrameMultipleSelectionFrameMultipleSelectionFrame
57 } } } } // // // // fim da classe fim da classe fim da classe fim da classe MultipleSelectionFrameMultipleSelectionFrameMultipleSelectionFrameMultipleSelectionFrame
Introdução à Tecnologia Java – 02/2012
Exemplo47 add( copyJButton ); add( copyJButton ); add( copyJButton ); add( copyJButton ); // // // // adiciona botão de cópia ao JFrameadiciona botão de cópia ao JFrameadiciona botão de cópia ao JFrameadiciona botão de cópia ao JFrame
48
49 copyJList = copyJList = copyJList = copyJList = newnewnewnew JList(); JList(); JList(); JList(); // // // // cria lista pcria lista pcria lista pcria lista p//// armazenar nomes de cor copiados armazenar nomes de cor copiados armazenar nomes de cor copiados armazenar nomes de cor copiados
50 copyJList.setVisibleRowCount( copyJList.setVisibleRowCount( copyJList.setVisibleRowCount( copyJList.setVisibleRowCount( 5555 ); ); ); ); // // // // mostra mostra mostra mostra 5 5 5 5 linhaslinhaslinhaslinhas
51 copyJList.setFixedCellcopyJList.setFixedCellcopyJList.setFixedCellcopyJList.setFixedCellWidth( Width( Width( Width( 100100100100 ); ); ); ); // // // // configura larguraconfigura larguraconfigura larguraconfigura largura
52 copyJList.setFixedCellHeight( copyJList.setFixedCellHeight( copyJList.setFixedCellHeight( copyJList.setFixedCellHeight( 15151515 ); ); ); ); // // // // configura alturaconfigura alturaconfigura alturaconfigura altura
53 copyJList.setSelectionMode(copyJList.setSelectionMode(copyJList.setSelectionMode(copyJList.setSelectionMode(
54 ListSelectionModel.SINGLE_INTERVAL_SELECTIONListSelectionModel.SINGLE_INTERVAL_SELECTIONListSelectionModel.SINGLE_INTERVAL_SELECTIONListSelectionModel.SINGLE_INTERVAL_SELECTION ); ); ); );
55 add( add( add( add( newnewnewnew JScroll JScroll JScroll JScrollPane( copyJList ) ); Pane( copyJList ) ); Pane( copyJList ) ); Pane( copyJList ) ); // ad// ad// ad// adiciona lista comiciona lista comiciona lista comiciona lista com scrollpane scrollpane scrollpane scrollpane
Configura a largura da célula para
apresentação
Celso Olivete Júnior 141
55 add( add( add( add( newnewnewnew JScroll JScroll JScroll JScrollPane( copyJList ) ); Pane( copyJList ) ); Pane( copyJList ) ); Pane( copyJList ) ); // ad// ad// ad// adiciona lista comiciona lista comiciona lista comiciona lista com scrollpane scrollpane scrollpane scrollpane
56 } } } } // // // // fim do construtor fim do construtor fim do construtor fim do construtor MultipleSelectionFrameMultipleSelectionFrameMultipleSelectionFrameMultipleSelectionFrame
57 } } } } // // // // fim da classe fim da classe fim da classe fim da classe MultipleSelectionFrameMultipleSelectionFrameMultipleSelectionFrameMultipleSelectionFrame
Introdução à Tecnologia Java – 02/2012
Exemplo47 add( copyJButton ); add( copyJButton ); add( copyJButton ); add( copyJButton ); // // // // adiciona botão de cópia ao JFrameadiciona botão de cópia ao JFrameadiciona botão de cópia ao JFrameadiciona botão de cópia ao JFrame
48
49 copyJList = copyJList = copyJList = copyJList = newnewnewnew JList(); JList(); JList(); JList(); // // // // cria lista pcria lista pcria lista pcria lista p//// armazenar nomes de cor copiados armazenar nomes de cor copiados armazenar nomes de cor copiados armazenar nomes de cor copiados
50 copyJList.setVisibleRowCount( copyJList.setVisibleRowCount( copyJList.setVisibleRowCount( copyJList.setVisibleRowCount( 5555 ); ); ); ); // // // // mostra mostra mostra mostra 5 5 5 5 linhaslinhaslinhaslinhas
51 copyJList.setFixedCellcopyJList.setFixedCellcopyJList.setFixedCellcopyJList.setFixedCellWidth( Width( Width( Width( 100100100100 ); ); ); ); // // // // configura larguraconfigura larguraconfigura larguraconfigura largura
52 copyJList.setFixedCellHeight( copyJList.setFixedCellHeight( copyJList.setFixedCellHeight( copyJList.setFixedCellHeight( 15151515 ); ); ); ); // // // // configura alturaconfigura alturaconfigura alturaconfigura altura
53 copyJList.setSelectionMode(copyJList.setSelectionMode(copyJList.setSelectionMode(copyJList.setSelectionMode(
54 ListSelectionModel.SINGLE_INTERVAL_SELECTIONListSelectionModel.SINGLE_INTERVAL_SELECTIONListSelectionModel.SINGLE_INTERVAL_SELECTIONListSelectionModel.SINGLE_INTERVAL_SELECTION ); ); ); );
55 add( add( add( add( newnewnewnew JScroll JScroll JScroll JScrollPane( copyJList ) ); Pane( copyJList ) ); Pane( copyJList ) ); Pane( copyJList ) ); // ad// ad// ad// adiciona lista comiciona lista comiciona lista comiciona lista com scrollpane scrollpane scrollpane scrollpane
Configura a largura da célula para
apresentação
Configura a altura da célula para
apresentação
Celso Olivete Júnior 142
55 add( add( add( add( newnewnewnew JScroll JScroll JScroll JScrollPane( copyJList ) ); Pane( copyJList ) ); Pane( copyJList ) ); Pane( copyJList ) ); // ad// ad// ad// adiciona lista comiciona lista comiciona lista comiciona lista com scrollpane scrollpane scrollpane scrollpane
56 } } } } // // // // fim do construtor fim do construtor fim do construtor fim do construtor MultipleSelectionFrameMultipleSelectionFrameMultipleSelectionFrameMultipleSelectionFrame
57 } } } } // // // // fim da classe fim da classe fim da classe fim da classe MultipleSelectionFrameMultipleSelectionFrameMultipleSelectionFrameMultipleSelectionFrame
Introdução à Tecnologia Java – 02/2012
Exemplo47 add( copyJButton ); add( copyJButton ); add( copyJButton ); add( copyJButton ); // // // // adiciona botão de cópia ao JFrameadiciona botão de cópia ao JFrameadiciona botão de cópia ao JFrameadiciona botão de cópia ao JFrame
48
49 copyJList = copyJList = copyJList = copyJList = newnewnewnew JList(); JList(); JList(); JList(); // // // // cria lista pcria lista pcria lista pcria lista p//// armazenar nomes de cor copiados armazenar nomes de cor copiados armazenar nomes de cor copiados armazenar nomes de cor copiados
50 copyJList.setVisibleRowCount( copyJList.setVisibleRowCount( copyJList.setVisibleRowCount( copyJList.setVisibleRowCount( 5555 ); ); ); ); // // // // mostra mostra mostra mostra 5 5 5 5 linhaslinhaslinhaslinhas
51 copyJList.setFixedCellcopyJList.setFixedCellcopyJList.setFixedCellcopyJList.setFixedCellWidth( Width( Width( Width( 100100100100 ); ); ); ); // // // // configura larguraconfigura larguraconfigura larguraconfigura largura
52 copyJList.setFixedCellHeight( copyJList.setFixedCellHeight( copyJList.setFixedCellHeight( copyJList.setFixedCellHeight( 15151515 ); ); ); ); // // // // configura alturaconfigura alturaconfigura alturaconfigura altura
53 copyJList.setSelectionMode(copyJList.setSelectionMode(copyJList.setSelectionMode(copyJList.setSelectionMode(
54 ListSelectionModel.SINGLE_INTERVAL_SELECTIONListSelectionModel.SINGLE_INTERVAL_SELECTIONListSelectionModel.SINGLE_INTERVAL_SELECTIONListSelectionModel.SINGLE_INTERVAL_SELECTION ); ); ); );
55 add( add( add( add( newnewnewnew JScroll JScroll JScroll JScrollPane( copyJList ) ); Pane( copyJList ) ); Pane( copyJList ) ); Pane( copyJList ) ); // ad// ad// ad// adiciona lista comiciona lista comiciona lista comiciona lista com scrollpane scrollpane scrollpane scrollpane
Configura a largura da célula para
apresentação
Configura a altura da célula para
apresentação
Celso Olivete Júnior 143
55 add( add( add( add( newnewnewnew JScroll JScroll JScroll JScrollPane( copyJList ) ); Pane( copyJList ) ); Pane( copyJList ) ); Pane( copyJList ) ); // ad// ad// ad// adiciona lista comiciona lista comiciona lista comiciona lista com scrollpane scrollpane scrollpane scrollpane
56 } } } } // // // // fim do construtor fim do construtor fim do construtor fim do construtor MultipleSelectionFrameMultipleSelectionFrameMultipleSelectionFrameMultipleSelectionFrame
57 } } } } // // // // fim da classe fim da classe fim da classe fim da classe MultipleSelectionFrameMultipleSelectionFrameMultipleSelectionFrameMultipleSelectionFrame
Configura o modelo de seleção
como seleção de um único
intervalo
Introdução à Tecnologia Java – 02/2012
Exemplo 1 // Fig. 11.26: MultipleSelectionTest.java// Fig. 11.26: MultipleSelectionTest.java// Fig. 11.26: MultipleSelectionTest.java// Fig. 11.26: MultipleSelectionTest.java
2 // Test// Test// Test// Testandoandoandoando MultipleSelectionFrame. MultipleSelectionFrame. MultipleSelectionFrame. MultipleSelectionFrame.
3 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
4
5 publicpublicpublicpublic classclassclassclass MultipleSelectionTest MultipleSelectionTest MultipleSelectionTest MultipleSelectionTest
6 {{{{
7 publicpublicpublicpublic staticstaticstaticstatic voidvoidvoidvoid main( String args[] ) main( String args[] ) main( String args[] ) main( String args[] )
8 { { { {
9 MultipleSelectionFrame MultipleSelectionFrame MultipleSelectionFrame MultipleSelectionFrame multipleSelectionFrame = multipleSelectionFrame = multipleSelectionFrame = multipleSelectionFrame =
10 newnewnewnew MultipleSelectionFrame(); MultipleSelectionFrame(); MultipleSelectionFrame(); MultipleSelectionFrame();
Celso Olivete Júnior 144
10 newnewnewnew MultipleSelectionFrame(); MultipleSelectionFrame(); MultipleSelectionFrame(); MultipleSelectionFrame();
11 multipleSelectionFrame.setDefaultCloseOperation( multipleSelectionFrame.setDefaultCloseOperation( multipleSelectionFrame.setDefaultCloseOperation( multipleSelectionFrame.setDefaultCloseOperation(
12 JFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSE ); ); ); );
13 multipleSelectionFrame.setSize( multipleSelectionFrame.setSize( multipleSelectionFrame.setSize( multipleSelectionFrame.setSize( 350350350350, , , , 140140140140 ); ); ); ); // // // // configura o tamanho do frameconfigura o tamanho do frameconfigura o tamanho do frameconfigura o tamanho do frame
14 multipleSelectionFrame.setVisible( multipleSelectionFrame.setVisible( multipleSelectionFrame.setVisible( multipleSelectionFrame.setVisible( truetruetruetrue ); ); ); ); // // // // exibeexibeexibeexibe o o o o frameframeframeframe
15 } } } } // // // // fim de fim de fim de fim de mainmainmainmain
16 } } } } // // // // fim da classe fim da classe fim da classe fim da classe MultipleSelectionTestMultipleSelectionTestMultipleSelectionTestMultipleSelectionTest
Introdução à Tecnologia Java – 02/2012
Tratamento de evento de mouse
Eventos de mouse:
Cria um objeto MouseEvent.
Tratado por MouseListeners eTratado por MouseListeners e
MouseMotionListeners.
MouseInputListener combina as duas interfaces.
Celso Olivete Júnior 145
Introdução à Tecnologia Java – 02/2012
Métodos de interface MouseListener e
MouseMotionListenerMétodos de interface MouseListener e MouseMotionListener
Métodos de interface MouseListenerMouseListenerMouseListenerMouseListener
public void mousePressed( MouseEvent event ) public void mousePressed( MouseEvent event ) public void mousePressed( MouseEvent event ) public void mousePressed( MouseEvent event )
Chamado quando um botão do mouse é pressionado enquanto o
Celso Olivete Júnior 146
Chamado quando um botão do mouse é pressionado enquanto o cursor de mouse estiver sobre um componente.
public vpublic vpublic vpublic void mouseClicked( MouseEvent event )oid mouseClicked( MouseEvent event )oid mouseClicked( MouseEvent event )oid mouseClicked( MouseEvent event )
Chamado quando um botão do mouse é pressionado e liberado enquanto o cursor do mouse pairar sobre um componente. Esse evento é sempre precedido por uma chamada para mousePressedmousePressedmousePressedmousePressed.
public void mouseReleased( MouseEvepublic void mouseReleased( MouseEvepublic void mouseReleased( MouseEvepublic void mouseReleased( MouseEvent event )nt event )nt event )nt event )
Chamado quando um botão do mouse é liberado depois de ser pressionado. Esse evento sempre é precedido por uma chamada para mousePressed e um ou mais chamadas para mouseDraggedmouseDraggedmouseDraggedmouseDragged.
public void mouseEntered( MouseEvent event )public void mouseEntered( MouseEvent event )public void mouseEntered( MouseEvent event )public void mouseEntered( MouseEvent event )
Chamado quando o cursor do mouse entra nos limites de um componente.
Introdução à Tecnologia Java – 02/2012
Métodos de interface MouseListener e
MouseMotionListenerMétodos de interface MouseListenerMouseListenerMouseListenerMouseListener e MouseMotionListenerMouseMotionListenerMouseMotionListenerMouseMotionListener public void mouseExited( MouseEvent event )public void mouseExited( MouseEvent event )public void mouseExited( MouseEvent event )public void mouseExited( MouseEvent event )
Chamado quando o cursor do mouse deixa os limites de um componente.
Métodos de interface MouseMotionListenerMouseMotionListenerMouseMotionListenerMouseMotionListener
Celso Olivete Júnior 147
Métodos de interface MouseMotionListenerMouseMotionListenerMouseMotionListenerMouseMotionListener
public void mouseDragged( MouseEvent public void mouseDragged( MouseEvent public void mouseDragged( MouseEvent public void mouseDragged( MouseEvent event )event )event )event )
Chamado quando o botão do mouse é pressionado enquanto o cursor de mouse estiver sobre um componente e o mouse é movido enquanto o botão do mouse permanecer pressionado. Esse evento é sempre precedido por uma chamada para mousePressedmousePressedmousePressedmousePressed. Todos os eventos de arrastar são enviados para o componente em que o usuário começou a arrastar o mouse.
public void mouseMoved( MouseEvent event )public void mouseMoved( MouseEvent event )public void mouseMoved( MouseEvent event )public void mouseMoved( MouseEvent event )
Chamado quando o mouse é movido quando o cursor de mouse estiver sobre um componente. Todos os eventos de movimento são enviados para o componente sobre o qual o mouse atualmente está posicionado.
Introdução à Tecnologia Java – 02/2012
Resumo 1 // Fig. 11.28: MouseTrackerFrame.java// Fig. 11.28: MouseTrackerFrame.java// Fig. 11.28: MouseTrackerFrame.java// Fig. 11.28: MouseTrackerFrame.java
2 // Demonstr// Demonstr// Demonstr// Demonstrando eventos de mouseando eventos de mouseando eventos de mouseando eventos de mouse....
3 importimportimportimport java.awt.Color; java.awt.Color; java.awt.Color; java.awt.Color;
4 importimportimportimport java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout;
5 importimportimportimport java.awt.event.MouseListener; java.awt.event.MouseListener; java.awt.event.MouseListener; java.awt.event.MouseListener;
6 importimportimportimport java.awt.event.MouseMotionListener; java.awt.event.MouseMotionListener; java.awt.event.MouseMotionListener; java.awt.event.MouseMotionListener;
7 importimportimportimport java.awt.event.Mo java.awt.event.Mo java.awt.event.Mo java.awt.event.MouseEvent;useEvent;useEvent;useEvent;
8 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
9 importimportimportimport javax.swing.JLabel; javax.swing.JLabel; javax.swing.JLabel; javax.swing.JLabel;
10 importimportimportimport javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel;
Celso Olivete Júnior 148
10 importimportimportimport javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel;
12 public classpublic classpublic classpublic class MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
13 {{{{
14 privateprivateprivateprivate JPanel mousePanel; JPanel mousePanel; JPanel mousePanel; JPanel mousePanel; // pa// pa// pa// paiiiinel nel nel nel em que eventos de em que eventos de em que eventos de em que eventos de mouse mouse mouse mouse oooocorrerãocorrerãocorrerãocorrerão
15 pppprivaterivaterivaterivate JLabel statusBar; JLabel statusBar; JLabel statusBar; JLabel statusBar; // // // // rótulo que exiberótulo que exiberótulo que exiberótulo que exibe informa informa informa informações sobre eventoções sobre eventoções sobre eventoções sobre evento
17 // // // // construtor construtor construtor construtor MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame configura configura configura configura GUI GUI GUI GUI eeee
18 // regist // regist // regist // registrararara handlers handlers handlers handlers de evento de mouse de evento de mouse de evento de mouse de evento de mouse
19 publicpublicpublicpublic MouseTrackerFrame() MouseTrackerFrame() MouseTrackerFrame() MouseTrackerFrame()
20 { { { {
21 supersupersupersuper( ( ( ( "Demonstrati"Demonstrati"Demonstrati"Demonstrating Mouse Events"ng Mouse Events"ng Mouse Events"ng Mouse Events" ); ); ); );
23 mousePanel = mousePanel = mousePanel = mousePanel = newnewnewnew JPanel(); JPanel(); JPanel(); JPanel(); // cr// cr// cr// criaiaiaia pa pa pa paiiiinelnelnelnel
24 mousePanel.setBackground( mousePanel.setBackground( mousePanel.setBackground( mousePanel.setBackground( Color.WHITEColor.WHITEColor.WHITEColor.WHITE ); ); ); ); // // // // configura cor de fundoconfigura cor de fundoconfigura cor de fundoconfigura cor de fundo
25 add( mousePanel, add( mousePanel, add( mousePanel, add( mousePanel, BorderLayout.CENTERBorderLayout.CENTERBorderLayout.CENTERBorderLayout.CENTER ); ); ); ); // ad// ad// ad// adiciona painel aoiciona painel aoiciona painel aoiciona painel ao JFra JFra JFra JFramemememe
26
27 statusBar = statusBar = statusBar = statusBar = newnewnewnew JLabel( JLabel( JLabel( JLabel( "Mouse outside JPanel" "Mouse outside JPanel" "Mouse outside JPanel" "Mouse outside JPanel" ););););
28 add( statusBar, add( statusBar, add( statusBar, add( statusBar, BorderLayout.SOUTHBorderLayout.SOUTHBorderLayout.SOUTHBorderLayout.SOUTH ); ); ); ); // ad // ad // ad // adiciona rótulo aoiciona rótulo aoiciona rótulo aoiciona rótulo ao JFrame JFrame JFrame JFrame
Introdução à Tecnologia Java – 02/2012
Resumo 1 // Fig. 11.28: MouseTrackerFrame.java// Fig. 11.28: MouseTrackerFrame.java// Fig. 11.28: MouseTrackerFrame.java// Fig. 11.28: MouseTrackerFrame.java
2 // Demonstr// Demonstr// Demonstr// Demonstrando eventos de mouseando eventos de mouseando eventos de mouseando eventos de mouse....
3 importimportimportimport java.awt.Color; java.awt.Color; java.awt.Color; java.awt.Color;
4 importimportimportimport java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout;
5 importimportimportimport java.awt.event.MouseListener; java.awt.event.MouseListener; java.awt.event.MouseListener; java.awt.event.MouseListener;
6 importimportimportimport java.awt.event.MouseMotionListener; java.awt.event.MouseMotionListener; java.awt.event.MouseMotionListener; java.awt.event.MouseMotionListener;
7 importimportimportimport java.awt.event.Mo java.awt.event.Mo java.awt.event.Mo java.awt.event.MouseEvent;useEvent;useEvent;useEvent;
8 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
9 importimportimportimport javax.swing.JLabel; javax.swing.JLabel; javax.swing.JLabel; javax.swing.JLabel;
10 importimportimportimport javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel;
Celso Olivete Júnior 149
10 importimportimportimport javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel;
12 public classpublic classpublic classpublic class MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
13 {{{{
14 privateprivateprivateprivate JPanel mousePanel; JPanel mousePanel; JPanel mousePanel; JPanel mousePanel; // pa// pa// pa// paiiiinel nel nel nel em que eventos de em que eventos de em que eventos de em que eventos de mouse mouse mouse mouse oooocorrerãocorrerãocorrerãocorrerão
15 pppprivaterivaterivaterivate JLabel statusBar; JLabel statusBar; JLabel statusBar; JLabel statusBar; // // // // rótulo que exiberótulo que exiberótulo que exiberótulo que exibe informa informa informa informações sobre eventoções sobre eventoções sobre eventoções sobre evento
17 // // // // construtor construtor construtor construtor MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame configura configura configura configura GUI GUI GUI GUI eeee
18 // regist // regist // regist // registrararara handlers handlers handlers handlers de evento de mouse de evento de mouse de evento de mouse de evento de mouse
19 publicpublicpublicpublic MouseTrackerFrame() MouseTrackerFrame() MouseTrackerFrame() MouseTrackerFrame()
20 { { { {
21 supersupersupersuper( ( ( ( "Demonstrati"Demonstrati"Demonstrati"Demonstrating Mouse Events"ng Mouse Events"ng Mouse Events"ng Mouse Events" ); ); ); );
23 mousePanel = mousePanel = mousePanel = mousePanel = newnewnewnew JPanel(); JPanel(); JPanel(); JPanel(); // cr// cr// cr// criaiaiaia pa pa pa paiiiinelnelnelnel
24 mousePanel.setBackground( mousePanel.setBackground( mousePanel.setBackground( mousePanel.setBackground( Color.WHITEColor.WHITEColor.WHITEColor.WHITE ); ); ); ); // // // // configura cor de fundoconfigura cor de fundoconfigura cor de fundoconfigura cor de fundo
25 add( mousePanel, add( mousePanel, add( mousePanel, add( mousePanel, BorderLayout.CENTERBorderLayout.CENTERBorderLayout.CENTERBorderLayout.CENTER ); ); ); ); // ad// ad// ad// adiciona painel aoiciona painel aoiciona painel aoiciona painel ao JFra JFra JFra JFramemememe
26
27 statusBar = statusBar = statusBar = statusBar = newnewnewnew JLabel( JLabel( JLabel( JLabel( "Mouse outside JPanel" "Mouse outside JPanel" "Mouse outside JPanel" "Mouse outside JPanel" ););););
28 add( statusBar, add( statusBar, add( statusBar, add( statusBar, BorderLayout.SOUTHBorderLayout.SOUTHBorderLayout.SOUTHBorderLayout.SOUTH ); ); ); ); // ad // ad // ad // adiciona rótulo aoiciona rótulo aoiciona rótulo aoiciona rótulo ao JFrame JFrame JFrame JFrame
Cria JPanel para capturar eventos de
mouse
Introdução à Tecnologia Java – 02/2012
Resumo 1 // Fig. 11.28: MouseTrackerFrame.java// Fig. 11.28: MouseTrackerFrame.java// Fig. 11.28: MouseTrackerFrame.java// Fig. 11.28: MouseTrackerFrame.java
2 // Demonstr// Demonstr// Demonstr// Demonstrando eventos de mouseando eventos de mouseando eventos de mouseando eventos de mouse....
3 importimportimportimport java.awt.Color; java.awt.Color; java.awt.Color; java.awt.Color;
4 importimportimportimport java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout;
5 importimportimportimport java.awt.event.MouseListener; java.awt.event.MouseListener; java.awt.event.MouseListener; java.awt.event.MouseListener;
6 importimportimportimport java.awt.event.MouseMotionListener; java.awt.event.MouseMotionListener; java.awt.event.MouseMotionListener; java.awt.event.MouseMotionListener;
7 importimportimportimport java.awt.event.Mo java.awt.event.Mo java.awt.event.Mo java.awt.event.MouseEvent;useEvent;useEvent;useEvent;
8 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
9 importimportimportimport javax.swing.JLabel; javax.swing.JLabel; javax.swing.JLabel; javax.swing.JLabel;
10 importimportimportimport javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel;
Celso Olivete Júnior 150
10 importimportimportimport javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel;
12 public classpublic classpublic classpublic class MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
13 {{{{
14 privateprivateprivateprivate JPanel mousePanel; JPanel mousePanel; JPanel mousePanel; JPanel mousePanel; // pa// pa// pa// paiiiinel nel nel nel em que eventos de em que eventos de em que eventos de em que eventos de mouse mouse mouse mouse oooocorrerãocorrerãocorrerãocorrerão
15 pppprivaterivaterivaterivate JLabel statusBar; JLabel statusBar; JLabel statusBar; JLabel statusBar; // // // // rótulo que exiberótulo que exiberótulo que exiberótulo que exibe informa informa informa informações sobre eventoções sobre eventoções sobre eventoções sobre evento
17 // // // // construtor construtor construtor construtor MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame configura configura configura configura GUI GUI GUI GUI eeee
18 // regist // regist // regist // registrararara handlers handlers handlers handlers de evento de mouse de evento de mouse de evento de mouse de evento de mouse
19 publicpublicpublicpublic MouseTrackerFrame() MouseTrackerFrame() MouseTrackerFrame() MouseTrackerFrame()
20 { { { {
21 supersupersupersuper( ( ( ( "Demonstrati"Demonstrati"Demonstrati"Demonstrating Mouse Events"ng Mouse Events"ng Mouse Events"ng Mouse Events" ); ); ); );
23 mousePanel = mousePanel = mousePanel = mousePanel = newnewnewnew JPanel(); JPanel(); JPanel(); JPanel(); // cr// cr// cr// criaiaiaia pa pa pa paiiiinelnelnelnel
24 mousePanel.setBackground( mousePanel.setBackground( mousePanel.setBackground( mousePanel.setBackground( Color.WHITEColor.WHITEColor.WHITEColor.WHITE ); ); ); ); // // // // configura cor de fundoconfigura cor de fundoconfigura cor de fundoconfigura cor de fundo
25 add( mousePanel, add( mousePanel, add( mousePanel, add( mousePanel, BorderLayout.CENTERBorderLayout.CENTERBorderLayout.CENTERBorderLayout.CENTER ); ); ); ); // ad// ad// ad// adiciona painel aoiciona painel aoiciona painel aoiciona painel ao JFra JFra JFra JFramemememe
26
27 statusBar = statusBar = statusBar = statusBar = newnewnewnew JLabel( JLabel( JLabel( JLabel( "Mouse outside JPanel" "Mouse outside JPanel" "Mouse outside JPanel" "Mouse outside JPanel" ););););
28 add( statusBar, add( statusBar, add( statusBar, add( statusBar, BorderLayout.SOUTHBorderLayout.SOUTHBorderLayout.SOUTHBorderLayout.SOUTH ); ); ); ); // ad // ad // ad // adiciona rótulo aoiciona rótulo aoiciona rótulo aoiciona rótulo ao JFrame JFrame JFrame JFrame
Cria JPanel para capturar eventos de
mouse
Configura o fundo como branco
Introdução à Tecnologia Java – 02/2012
Resumo 1 // Fig. 11.28: MouseTrackerFrame.java// Fig. 11.28: MouseTrackerFrame.java// Fig. 11.28: MouseTrackerFrame.java// Fig. 11.28: MouseTrackerFrame.java
2 // Demonstr// Demonstr// Demonstr// Demonstrando eventos de mouseando eventos de mouseando eventos de mouseando eventos de mouse....
3 importimportimportimport java.awt.Color; java.awt.Color; java.awt.Color; java.awt.Color;
4 importimportimportimport java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout;
5 importimportimportimport java.awt.event.MouseListener; java.awt.event.MouseListener; java.awt.event.MouseListener; java.awt.event.MouseListener;
6 importimportimportimport java.awt.event.MouseMotionListener; java.awt.event.MouseMotionListener; java.awt.event.MouseMotionListener; java.awt.event.MouseMotionListener;
7 importimportimportimport java.awt.event.Mo java.awt.event.Mo java.awt.event.Mo java.awt.event.MouseEvent;useEvent;useEvent;useEvent;
8 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
9 importimportimportimport javax.swing.JLabel; javax.swing.JLabel; javax.swing.JLabel; javax.swing.JLabel;
10 importimportimportimport javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel;
Celso Olivete Júnior 151
10 importimportimportimport javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel;
12 public classpublic classpublic classpublic class MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
13 {{{{
14 privateprivateprivateprivate JPanel mousePanel; JPanel mousePanel; JPanel mousePanel; JPanel mousePanel; // pa// pa// pa// paiiiinel nel nel nel em que eventos de em que eventos de em que eventos de em que eventos de mouse mouse mouse mouse oooocorrerãocorrerãocorrerãocorrerão
15 pppprivaterivaterivaterivate JLabel statusBar; JLabel statusBar; JLabel statusBar; JLabel statusBar; // // // // rótulo que exiberótulo que exiberótulo que exiberótulo que exibe informa informa informa informações sobre eventoções sobre eventoções sobre eventoções sobre evento
17 // // // // construtor construtor construtor construtor MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame configura configura configura configura GUI GUI GUI GUI eeee
18 // regist // regist // regist // registrararara handlers handlers handlers handlers de evento de mouse de evento de mouse de evento de mouse de evento de mouse
19 publicpublicpublicpublic MouseTrackerFrame() MouseTrackerFrame() MouseTrackerFrame() MouseTrackerFrame()
20 { { { {
21 supersupersupersuper( ( ( ( "Demonstrati"Demonstrati"Demonstrati"Demonstrating Mouse Events"ng Mouse Events"ng Mouse Events"ng Mouse Events" ); ); ); );
23 mousePanel = mousePanel = mousePanel = mousePanel = newnewnewnew JPanel(); JPanel(); JPanel(); JPanel(); // cr// cr// cr// criaiaiaia pa pa pa paiiiinelnelnelnel
24 mousePanel.setBackground( mousePanel.setBackground( mousePanel.setBackground( mousePanel.setBackground( Color.WHITEColor.WHITEColor.WHITEColor.WHITE ); ); ); ); // // // // configura cor de fundoconfigura cor de fundoconfigura cor de fundoconfigura cor de fundo
25 add( mousePanel, add( mousePanel, add( mousePanel, add( mousePanel, BorderLayout.CENTERBorderLayout.CENTERBorderLayout.CENTERBorderLayout.CENTER ); ); ); ); // ad// ad// ad// adiciona painel aoiciona painel aoiciona painel aoiciona painel ao JFra JFra JFra JFramemememe
26
27 statusBar = statusBar = statusBar = statusBar = newnewnewnew JLabel( JLabel( JLabel( JLabel( "Mouse outside JPanel" "Mouse outside JPanel" "Mouse outside JPanel" "Mouse outside JPanel" ););););
28 add( statusBar, add( statusBar, add( statusBar, add( statusBar, BorderLayout.SOUTHBorderLayout.SOUTHBorderLayout.SOUTHBorderLayout.SOUTH ); ); ); ); // ad // ad // ad // adiciona rótulo aoiciona rótulo aoiciona rótulo aoiciona rótulo ao JFrame JFrame JFrame JFrame
Cria JPanel para capturar eventos de
mouse
Configura o fundo como branco
Cria JLabel e o adiciona à aplicação
Introdução à Tecnologia Java – 02/2012
Resumo30 // // // // cria e registra listener para mouse e eventos de movimento de mousecria e registra listener para mouse e eventos de movimento de mousecria e registra listener para mouse e eventos de movimento de mousecria e registra listener para mouse e eventos de movimento de mouse
31 MouseHandler handler = MouseHandler handler = MouseHandler handler = MouseHandler handler = newnewnewnew MouseHandler(); MouseHandler(); MouseHandler(); MouseHandler();
32 mousePanel.addMouseListener( handler );mousePanel.addMouseListener( handler );mousePanel.addMouseListener( handler );mousePanel.addMouseListener( handler );
33 mousePanelmousePanelmousePanelmousePanel.addMouseMotionListener( handler );.addMouseMotionListener( handler );.addMouseMotionListener( handler );.addMouseMotionListener( handler );
34 } } } } // // // // fim dofim dofim dofim do construtor construtor construtor construtor MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame
36 private classprivate classprivate classprivate class MouseHandler MouseHandler MouseHandler MouseHandler implementsimplementsimplementsimplements MouseListener, MouseListener, MouseListener, MouseListener,
37 MouseMotionListenerMouseMotionListenerMouseMotionListenerMouseMotionListener
38 { { { {
39 / / / // / / / handlers de evento handlers de evento handlers de evento handlers de evento MouseListenerMouseListenerMouseListenerMouseListener
40 // // // // trata evento quando o mouse é liberado logo depois de pressionadotrata evento quando o mouse é liberado logo depois de pressionadotrata evento quando o mouse é liberado logo depois de pressionadotrata evento quando o mouse é liberado logo depois de pressionado
41 public voidpublic voidpublic voidpublic void mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event )
Celso Olivete Júnior 152
41 public voidpublic voidpublic voidpublic void mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event )
42 { { { {
43 statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( "Clicked at [%d, %d]""Clicked at [%d, %d]""Clicked at [%d, %d]""Clicked at [%d, %d]", , , ,
44 event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY() ) ); ) ); ) ); ) );
45 } } } } // // // // fim do método fim do método fim do método fim do método mouseClickedmouseClickedmouseClickedmouseClicked
47 // // // // trata evento quando mouse é pressionadotrata evento quando mouse é pressionadotrata evento quando mouse é pressionadotrata evento quando mouse é pressionado
48 public voidpublic voidpublic voidpublic void mousePressed( MouseEvent event ) mousePressed( MouseEvent event ) mousePressed( MouseEvent event ) mousePressed( MouseEvent event )
49 { { { {
50 statusBar.setText( St statusBar.setText( St statusBar.setText( St statusBar.setText( String.format( ring.format( ring.format( ring.format( "Pressed at [%d, %d]""Pressed at [%d, %d]""Pressed at [%d, %d]""Pressed at [%d, %d]", , , ,
51 event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY() ) ); ) ); ) ); ) );
52 } } } } // // // // fim do método fim do método fim do método fim do método mousePressedmousePressedmousePressedmousePressed
54 // // // // trata evento quando mouse é liberado depois da operação de arrastartrata evento quando mouse é liberado depois da operação de arrastartrata evento quando mouse é liberado depois da operação de arrastartrata evento quando mouse é liberado depois da operação de arrastar
55 public voidpublic voidpublic voidpublic void mouseReleased( M mouseReleased( M mouseReleased( M mouseReleased( MouseEvent event )ouseEvent event )ouseEvent event )ouseEvent event )
56 { { { {
57 statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( "Released at [%d, %d]""Released at [%d, %d]""Released at [%d, %d]""Released at [%d, %d]", , , ,
58 event.getX()event.getX()event.getX()event.getX(), , , , event.getY()event.getY()event.getY()event.getY() ) ); ) ); ) ); ) );
59 } } } } // // // // fim do método fim do método fim do método fim do método mouseReleasedmouseReleasedmouseReleasedmouseReleased
Introdução à Tecnologia Java – 02/2012
Resumo30 // // // // cria e registra listener para mouse e eventos de movimento de mousecria e registra listener para mouse e eventos de movimento de mousecria e registra listener para mouse e eventos de movimento de mousecria e registra listener para mouse e eventos de movimento de mouse
31 MouseHandler handler = MouseHandler handler = MouseHandler handler = MouseHandler handler = newnewnewnew MouseHandler(); MouseHandler(); MouseHandler(); MouseHandler();
32 mousePanel.addMouseListener( handler );mousePanel.addMouseListener( handler );mousePanel.addMouseListener( handler );mousePanel.addMouseListener( handler );
33 mousePanelmousePanelmousePanelmousePanel.addMouseMotionListener( handler );.addMouseMotionListener( handler );.addMouseMotionListener( handler );.addMouseMotionListener( handler );
34 } } } } // // // // fim dofim dofim dofim do construtor construtor construtor construtor MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame
36 private classprivate classprivate classprivate class MouseHandler MouseHandler MouseHandler MouseHandler implementsimplementsimplementsimplements MouseListener, MouseListener, MouseListener, MouseListener,
37 MouseMotionListenerMouseMotionListenerMouseMotionListenerMouseMotionListener
38 { { { {
39 / / / // / / / handlers de evento handlers de evento handlers de evento handlers de evento MouseListenerMouseListenerMouseListenerMouseListener
40 // // // // trata evento quando o mouse é liberado logo depois de pressionadotrata evento quando o mouse é liberado logo depois de pressionadotrata evento quando o mouse é liberado logo depois de pressionadotrata evento quando o mouse é liberado logo depois de pressionado
41 public voidpublic voidpublic voidpublic void mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event )
Cria handler de evento para eventos de
mouse
Celso Olivete Júnior 153
41 public voidpublic voidpublic voidpublic void mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event )
42 { { { {
43 statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( "Clicked at [%d, %d]""Clicked at [%d, %d]""Clicked at [%d, %d]""Clicked at [%d, %d]", , , ,
44 event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY() ) ); ) ); ) ); ) );
45 } } } } // // // // fim do método fim do método fim do método fim do método mouseClickedmouseClickedmouseClickedmouseClicked
47 // // // // trata evento quando mouse é pressionadotrata evento quando mouse é pressionadotrata evento quando mouse é pressionadotrata evento quando mouse é pressionado
48 public voidpublic voidpublic voidpublic void mousePressed( MouseEvent event ) mousePressed( MouseEvent event ) mousePressed( MouseEvent event ) mousePressed( MouseEvent event )
49 { { { {
50 statusBar.setText( St statusBar.setText( St statusBar.setText( St statusBar.setText( String.format( ring.format( ring.format( ring.format( "Pressed at [%d, %d]""Pressed at [%d, %d]""Pressed at [%d, %d]""Pressed at [%d, %d]", , , ,
51 event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY() ) ); ) ); ) ); ) );
52 } } } } // // // // fim do método fim do método fim do método fim do método mousePressedmousePressedmousePressedmousePressed
54 // // // // trata evento quando mouse é liberado depois da operação de arrastartrata evento quando mouse é liberado depois da operação de arrastartrata evento quando mouse é liberado depois da operação de arrastartrata evento quando mouse é liberado depois da operação de arrastar
55 public voidpublic voidpublic voidpublic void mouseReleased( M mouseReleased( M mouseReleased( M mouseReleased( MouseEvent event )ouseEvent event )ouseEvent event )ouseEvent event )
56 { { { {
57 statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( "Released at [%d, %d]""Released at [%d, %d]""Released at [%d, %d]""Released at [%d, %d]", , , ,
58 event.getX()event.getX()event.getX()event.getX(), , , , event.getY()event.getY()event.getY()event.getY() ) ); ) ); ) ); ) );
59 } } } } // // // // fim do método fim do método fim do método fim do método mouseReleasedmouseReleasedmouseReleasedmouseReleased
Introdução à Tecnologia Java – 02/2012
Resumo30 // // // // cria e registra listener para mouse e eventos de movimento de mousecria e registra listener para mouse e eventos de movimento de mousecria e registra listener para mouse e eventos de movimento de mousecria e registra listener para mouse e eventos de movimento de mouse
31 MouseHandler handler = MouseHandler handler = MouseHandler handler = MouseHandler handler = newnewnewnew MouseHandler(); MouseHandler(); MouseHandler(); MouseHandler();
32 mousePanel.addMouseListener( handler );mousePanel.addMouseListener( handler );mousePanel.addMouseListener( handler );mousePanel.addMouseListener( handler );
33 mousePanelmousePanelmousePanelmousePanel.addMouseMotionListener( handler );.addMouseMotionListener( handler );.addMouseMotionListener( handler );.addMouseMotionListener( handler );
34 } } } } // // // // fim dofim dofim dofim do construtor construtor construtor construtor MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame
36 private classprivate classprivate classprivate class MouseHandler MouseHandler MouseHandler MouseHandler implementsimplementsimplementsimplements MouseListener, MouseListener, MouseListener, MouseListener,
37 MouseMotionListenerMouseMotionListenerMouseMotionListenerMouseMotionListener
38 { { { {
39 / / / // / / / handlers de evento handlers de evento handlers de evento handlers de evento MouseListenerMouseListenerMouseListenerMouseListener
40 // // // // trata evento quando o mouse é liberado logo depois de pressionadotrata evento quando o mouse é liberado logo depois de pressionadotrata evento quando o mouse é liberado logo depois de pressionadotrata evento quando o mouse é liberado logo depois de pressionado
41 public voidpublic voidpublic voidpublic void mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event )
Cria handler de evento para eventos de
mouse
Registra um handler de evento
Celso Olivete Júnior 154
41 public voidpublic voidpublic voidpublic void mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event )
42 { { { {
43 statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( "Clicked at [%d, %d]""Clicked at [%d, %d]""Clicked at [%d, %d]""Clicked at [%d, %d]", , , ,
44 event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY() ) ); ) ); ) ); ) );
45 } } } } // // // // fim do método fim do método fim do método fim do método mouseClickedmouseClickedmouseClickedmouseClicked
47 // // // // trata evento quando mouse é pressionadotrata evento quando mouse é pressionadotrata evento quando mouse é pressionadotrata evento quando mouse é pressionado
48 public voidpublic voidpublic voidpublic void mousePressed( MouseEvent event ) mousePressed( MouseEvent event ) mousePressed( MouseEvent event ) mousePressed( MouseEvent event )
49 { { { {
50 statusBar.setText( St statusBar.setText( St statusBar.setText( St statusBar.setText( String.format( ring.format( ring.format( ring.format( "Pressed at [%d, %d]""Pressed at [%d, %d]""Pressed at [%d, %d]""Pressed at [%d, %d]", , , ,
51 event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY() ) ); ) ); ) ); ) );
52 } } } } // // // // fim do método fim do método fim do método fim do método mousePressedmousePressedmousePressedmousePressed
54 // // // // trata evento quando mouse é liberado depois da operação de arrastartrata evento quando mouse é liberado depois da operação de arrastartrata evento quando mouse é liberado depois da operação de arrastartrata evento quando mouse é liberado depois da operação de arrastar
55 public voidpublic voidpublic voidpublic void mouseReleased( M mouseReleased( M mouseReleased( M mouseReleased( MouseEvent event )ouseEvent event )ouseEvent event )ouseEvent event )
56 { { { {
57 statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( "Released at [%d, %d]""Released at [%d, %d]""Released at [%d, %d]""Released at [%d, %d]", , , ,
58 event.getX()event.getX()event.getX()event.getX(), , , , event.getY()event.getY()event.getY()event.getY() ) ); ) ); ) ); ) );
59 } } } } // // // // fim do método fim do método fim do método fim do método mouseReleasedmouseReleasedmouseReleasedmouseReleased
Introdução à Tecnologia Java – 02/2012
Resumo30 // // // // cria e registra listener para mouse e eventos de movimento de mousecria e registra listener para mouse e eventos de movimento de mousecria e registra listener para mouse e eventos de movimento de mousecria e registra listener para mouse e eventos de movimento de mouse
31 MouseHandler handler = MouseHandler handler = MouseHandler handler = MouseHandler handler = newnewnewnew MouseHandler(); MouseHandler(); MouseHandler(); MouseHandler();
32 mousePanel.addMouseListener( handler );mousePanel.addMouseListener( handler );mousePanel.addMouseListener( handler );mousePanel.addMouseListener( handler );
33 mousePanelmousePanelmousePanelmousePanel.addMouseMotionListener( handler );.addMouseMotionListener( handler );.addMouseMotionListener( handler );.addMouseMotionListener( handler );
34 } } } } // // // // fim dofim dofim dofim do construtor construtor construtor construtor MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame
36 private classprivate classprivate classprivate class MouseHandler MouseHandler MouseHandler MouseHandler implementsimplementsimplementsimplements MouseListener, MouseListener, MouseListener, MouseListener,
37 MouseMotionListenerMouseMotionListenerMouseMotionListenerMouseMotionListener
38 { { { {
39 / / / // / / / handlers de evento handlers de evento handlers de evento handlers de evento MouseListenerMouseListenerMouseListenerMouseListener
40 // // // // trata evento quando o mouse é liberado logo depois de pressionadotrata evento quando o mouse é liberado logo depois de pressionadotrata evento quando o mouse é liberado logo depois de pressionadotrata evento quando o mouse é liberado logo depois de pressionado
41 public voidpublic voidpublic voidpublic void mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event )
Cria handler de evento para eventos de
mouse
Registra um handler de evento
Implementa interfaces ouvintes de
mouse
Celso Olivete Júnior 155
41 public voidpublic voidpublic voidpublic void mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event )
42 { { { {
43 statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( "Clicked at [%d, %d]""Clicked at [%d, %d]""Clicked at [%d, %d]""Clicked at [%d, %d]", , , ,
44 event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY() ) ); ) ); ) ); ) );
45 } } } } // // // // fim do método fim do método fim do método fim do método mouseClickedmouseClickedmouseClickedmouseClicked
47 // // // // trata evento quando mouse é pressionadotrata evento quando mouse é pressionadotrata evento quando mouse é pressionadotrata evento quando mouse é pressionado
48 public voidpublic voidpublic voidpublic void mousePressed( MouseEvent event ) mousePressed( MouseEvent event ) mousePressed( MouseEvent event ) mousePressed( MouseEvent event )
49 { { { {
50 statusBar.setText( St statusBar.setText( St statusBar.setText( St statusBar.setText( String.format( ring.format( ring.format( ring.format( "Pressed at [%d, %d]""Pressed at [%d, %d]""Pressed at [%d, %d]""Pressed at [%d, %d]", , , ,
51 event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY() ) ); ) ); ) ); ) );
52 } } } } // // // // fim do método fim do método fim do método fim do método mousePressedmousePressedmousePressedmousePressed
54 // // // // trata evento quando mouse é liberado depois da operação de arrastartrata evento quando mouse é liberado depois da operação de arrastartrata evento quando mouse é liberado depois da operação de arrastartrata evento quando mouse é liberado depois da operação de arrastar
55 public voidpublic voidpublic voidpublic void mouseReleased( M mouseReleased( M mouseReleased( M mouseReleased( MouseEvent event )ouseEvent event )ouseEvent event )ouseEvent event )
56 { { { {
57 statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( "Released at [%d, %d]""Released at [%d, %d]""Released at [%d, %d]""Released at [%d, %d]", , , ,
58 event.getX()event.getX()event.getX()event.getX(), , , , event.getY()event.getY()event.getY()event.getY() ) ); ) ); ) ); ) );
59 } } } } // // // // fim do método fim do método fim do método fim do método mouseReleasedmouseReleasedmouseReleasedmouseReleased
Introdução à Tecnologia Java – 02/2012
Resumo30 // // // // cria e registra listener para mouse e eventos de movimento de mousecria e registra listener para mouse e eventos de movimento de mousecria e registra listener para mouse e eventos de movimento de mousecria e registra listener para mouse e eventos de movimento de mouse
31 MouseHandler handler = MouseHandler handler = MouseHandler handler = MouseHandler handler = newnewnewnew MouseHandler(); MouseHandler(); MouseHandler(); MouseHandler();
32 mousePanel.addMouseListener( handler );mousePanel.addMouseListener( handler );mousePanel.addMouseListener( handler );mousePanel.addMouseListener( handler );
33 mousePanelmousePanelmousePanelmousePanel.addMouseMotionListener( handler );.addMouseMotionListener( handler );.addMouseMotionListener( handler );.addMouseMotionListener( handler );
34 } } } } // // // // fim dofim dofim dofim do construtor construtor construtor construtor MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame
36 private classprivate classprivate classprivate class MouseHandler MouseHandler MouseHandler MouseHandler implementsimplementsimplementsimplements MouseListener, MouseListener, MouseListener, MouseListener,
37 MouseMotionListenerMouseMotionListenerMouseMotionListenerMouseMotionListener
38 { { { {
39 / / / // / / / handlers de evento handlers de evento handlers de evento handlers de evento MouseListenerMouseListenerMouseListenerMouseListener
40 // // // // trata evento quando o mouse é liberado logo depois de pressionadotrata evento quando o mouse é liberado logo depois de pressionadotrata evento quando o mouse é liberado logo depois de pressionadotrata evento quando o mouse é liberado logo depois de pressionado
41 public voidpublic voidpublic voidpublic void mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event )
Cria handler de evento para eventos de
mouse
Registra um handler de evento
Implementa interfaces ouvintes de
mouse
Celso Olivete Júnior 156
41 public voidpublic voidpublic voidpublic void mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event )
42 { { { {
43 statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( "Clicked at [%d, %d]""Clicked at [%d, %d]""Clicked at [%d, %d]""Clicked at [%d, %d]", , , ,
44 event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY() ) ); ) ); ) ); ) );
45 } } } } // // // // fim do método fim do método fim do método fim do método mouseClickedmouseClickedmouseClickedmouseClicked
47 // // // // trata evento quando mouse é pressionadotrata evento quando mouse é pressionadotrata evento quando mouse é pressionadotrata evento quando mouse é pressionado
48 public voidpublic voidpublic voidpublic void mousePressed( MouseEvent event ) mousePressed( MouseEvent event ) mousePressed( MouseEvent event ) mousePressed( MouseEvent event )
49 { { { {
50 statusBar.setText( St statusBar.setText( St statusBar.setText( St statusBar.setText( String.format( ring.format( ring.format( ring.format( "Pressed at [%d, %d]""Pressed at [%d, %d]""Pressed at [%d, %d]""Pressed at [%d, %d]", , , ,
51 event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY() ) ); ) ); ) ); ) );
52 } } } } // // // // fim do método fim do método fim do método fim do método mousePressedmousePressedmousePressedmousePressed
54 // // // // trata evento quando mouse é liberado depois da operação de arrastartrata evento quando mouse é liberado depois da operação de arrastartrata evento quando mouse é liberado depois da operação de arrastartrata evento quando mouse é liberado depois da operação de arrastar
55 public voidpublic voidpublic voidpublic void mouseReleased( M mouseReleased( M mouseReleased( M mouseReleased( MouseEvent event )ouseEvent event )ouseEvent event )ouseEvent event )
56 { { { {
57 statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( "Released at [%d, %d]""Released at [%d, %d]""Released at [%d, %d]""Released at [%d, %d]", , , ,
58 event.getX()event.getX()event.getX()event.getX(), , , , event.getY()event.getY()event.getY()event.getY() ) ); ) ); ) ); ) );
59 } } } } // // // // fim do método fim do método fim do método fim do método mouseReleasedmouseReleasedmouseReleasedmouseReleased
Declara o método mouseClicked
Introdução à Tecnologia Java – 02/2012
Resumo30 // // // // cria e registra listener para mouse e eventos de movimento de mousecria e registra listener para mouse e eventos de movimento de mousecria e registra listener para mouse e eventos de movimento de mousecria e registra listener para mouse e eventos de movimento de mouse
31 MouseHandler handler = MouseHandler handler = MouseHandler handler = MouseHandler handler = newnewnewnew MouseHandler(); MouseHandler(); MouseHandler(); MouseHandler();
32 mousePanel.addMouseListener( handler );mousePanel.addMouseListener( handler );mousePanel.addMouseListener( handler );mousePanel.addMouseListener( handler );
33 mousePanelmousePanelmousePanelmousePanel.addMouseMotionListener( handler );.addMouseMotionListener( handler );.addMouseMotionListener( handler );.addMouseMotionListener( handler );
34 } } } } // // // // fim dofim dofim dofim do construtor construtor construtor construtor MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame
36 private classprivate classprivate classprivate class MouseHandler MouseHandler MouseHandler MouseHandler implementsimplementsimplementsimplements MouseListener, MouseListener, MouseListener, MouseListener,
37 MouseMotionListenerMouseMotionListenerMouseMotionListenerMouseMotionListener
38 { { { {
39 / / / // / / / handlers de evento handlers de evento handlers de evento handlers de evento MouseListenerMouseListenerMouseListenerMouseListener
40 // // // // trata evento quando o mouse é liberado logo depois de pressionadotrata evento quando o mouse é liberado logo depois de pressionadotrata evento quando o mouse é liberado logo depois de pressionadotrata evento quando o mouse é liberado logo depois de pressionado
41 public voidpublic voidpublic voidpublic void mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event )
Cria handler de evento para eventos de
mouse
Registra um handler de evento
Implementa interfaces ouvintes de
mouse
Celso Olivete Júnior 157
41 public voidpublic voidpublic voidpublic void mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event )
42 { { { {
43 statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( "Clicked at [%d, %d]""Clicked at [%d, %d]""Clicked at [%d, %d]""Clicked at [%d, %d]", , , ,
44 event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY() ) ); ) ); ) ); ) );
45 } } } } // // // // fim do método fim do método fim do método fim do método mouseClickedmouseClickedmouseClickedmouseClicked
47 // // // // trata evento quando mouse é pressionadotrata evento quando mouse é pressionadotrata evento quando mouse é pressionadotrata evento quando mouse é pressionado
48 public voidpublic voidpublic voidpublic void mousePressed( MouseEvent event ) mousePressed( MouseEvent event ) mousePressed( MouseEvent event ) mousePressed( MouseEvent event )
49 { { { {
50 statusBar.setText( St statusBar.setText( St statusBar.setText( St statusBar.setText( String.format( ring.format( ring.format( ring.format( "Pressed at [%d, %d]""Pressed at [%d, %d]""Pressed at [%d, %d]""Pressed at [%d, %d]", , , ,
51 event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY() ) ); ) ); ) ); ) );
52 } } } } // // // // fim do método fim do método fim do método fim do método mousePressedmousePressedmousePressedmousePressed
54 // // // // trata evento quando mouse é liberado depois da operação de arrastartrata evento quando mouse é liberado depois da operação de arrastartrata evento quando mouse é liberado depois da operação de arrastartrata evento quando mouse é liberado depois da operação de arrastar
55 public voidpublic voidpublic voidpublic void mouseReleased( M mouseReleased( M mouseReleased( M mouseReleased( MouseEvent event )ouseEvent event )ouseEvent event )ouseEvent event )
56 { { { {
57 statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( "Released at [%d, %d]""Released at [%d, %d]""Released at [%d, %d]""Released at [%d, %d]", , , ,
58 event.getX()event.getX()event.getX()event.getX(), , , , event.getY()event.getY()event.getY()event.getY() ) ); ) ); ) ); ) );
59 } } } } // // // // fim do método fim do método fim do método fim do método mouseReleasedmouseReleasedmouseReleasedmouseReleased
Determina a localização do clique de
mouse
Declara o método mouseClicked
Introdução à Tecnologia Java – 02/2012
Resumo30 // // // // cria e registra listener para mouse e eventos de movimento de mousecria e registra listener para mouse e eventos de movimento de mousecria e registra listener para mouse e eventos de movimento de mousecria e registra listener para mouse e eventos de movimento de mouse
31 MouseHandler handler = MouseHandler handler = MouseHandler handler = MouseHandler handler = newnewnewnew MouseHandler(); MouseHandler(); MouseHandler(); MouseHandler();
32 mousePanel.addMouseListener( handler );mousePanel.addMouseListener( handler );mousePanel.addMouseListener( handler );mousePanel.addMouseListener( handler );
33 mousePanelmousePanelmousePanelmousePanel.addMouseMotionListener( handler );.addMouseMotionListener( handler );.addMouseMotionListener( handler );.addMouseMotionListener( handler );
34 } } } } // // // // fim dofim dofim dofim do construtor construtor construtor construtor MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame
36 private classprivate classprivate classprivate class MouseHandler MouseHandler MouseHandler MouseHandler implementsimplementsimplementsimplements MouseListener, MouseListener, MouseListener, MouseListener,
37 MouseMotionListenerMouseMotionListenerMouseMotionListenerMouseMotionListener
38 { { { {
39 / / / // / / / handlers de evento handlers de evento handlers de evento handlers de evento MouseListenerMouseListenerMouseListenerMouseListener
40 // // // // trata evento quando o mouse é liberado logo depois de pressionadotrata evento quando o mouse é liberado logo depois de pressionadotrata evento quando o mouse é liberado logo depois de pressionadotrata evento quando o mouse é liberado logo depois de pressionado
41 public voidpublic voidpublic voidpublic void mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event )
Cria handler de evento para eventos de
mouse
Registra um handler de evento
Implementa interfaces ouvintes de
mouse
Celso Olivete Júnior 158
41 public voidpublic voidpublic voidpublic void mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event )
42 { { { {
43 statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( "Clicked at [%d, %d]""Clicked at [%d, %d]""Clicked at [%d, %d]""Clicked at [%d, %d]", , , ,
44 event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY() ) ); ) ); ) ); ) );
45 } } } } // // // // fim do método fim do método fim do método fim do método mouseClickedmouseClickedmouseClickedmouseClicked
47 // // // // trata evento quando mouse é pressionadotrata evento quando mouse é pressionadotrata evento quando mouse é pressionadotrata evento quando mouse é pressionado
48 public voidpublic voidpublic voidpublic void mousePressed( MouseEvent event ) mousePressed( MouseEvent event ) mousePressed( MouseEvent event ) mousePressed( MouseEvent event )
49 { { { {
50 statusBar.setText( St statusBar.setText( St statusBar.setText( St statusBar.setText( String.format( ring.format( ring.format( ring.format( "Pressed at [%d, %d]""Pressed at [%d, %d]""Pressed at [%d, %d]""Pressed at [%d, %d]", , , ,
51 event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY() ) ); ) ); ) ); ) );
52 } } } } // // // // fim do método fim do método fim do método fim do método mousePressedmousePressedmousePressedmousePressed
54 // // // // trata evento quando mouse é liberado depois da operação de arrastartrata evento quando mouse é liberado depois da operação de arrastartrata evento quando mouse é liberado depois da operação de arrastartrata evento quando mouse é liberado depois da operação de arrastar
55 public voidpublic voidpublic voidpublic void mouseReleased( M mouseReleased( M mouseReleased( M mouseReleased( MouseEvent event )ouseEvent event )ouseEvent event )ouseEvent event )
56 { { { {
57 statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( "Released at [%d, %d]""Released at [%d, %d]""Released at [%d, %d]""Released at [%d, %d]", , , ,
58 event.getX()event.getX()event.getX()event.getX(), , , , event.getY()event.getY()event.getY()event.getY() ) ); ) ); ) ); ) );
59 } } } } // // // // fim do método fim do método fim do método fim do método mouseReleasedmouseReleasedmouseReleasedmouseReleased
Determina a localização do clique de
mouse
Declara o método mouseClicked
Declara o método mousePressed
Introdução à Tecnologia Java – 02/2012
Resumo30 // // // // cria e registra listener para mouse e eventos de movimento de mousecria e registra listener para mouse e eventos de movimento de mousecria e registra listener para mouse e eventos de movimento de mousecria e registra listener para mouse e eventos de movimento de mouse
31 MouseHandler handler = MouseHandler handler = MouseHandler handler = MouseHandler handler = newnewnewnew MouseHandler(); MouseHandler(); MouseHandler(); MouseHandler();
32 mousePanel.addMouseListener( handler );mousePanel.addMouseListener( handler );mousePanel.addMouseListener( handler );mousePanel.addMouseListener( handler );
33 mousePanelmousePanelmousePanelmousePanel.addMouseMotionListener( handler );.addMouseMotionListener( handler );.addMouseMotionListener( handler );.addMouseMotionListener( handler );
34 } } } } // // // // fim dofim dofim dofim do construtor construtor construtor construtor MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame
36 private classprivate classprivate classprivate class MouseHandler MouseHandler MouseHandler MouseHandler implementsimplementsimplementsimplements MouseListener, MouseListener, MouseListener, MouseListener,
37 MouseMotionListenerMouseMotionListenerMouseMotionListenerMouseMotionListener
38 { { { {
39 / / / // / / / handlers de evento handlers de evento handlers de evento handlers de evento MouseListenerMouseListenerMouseListenerMouseListener
40 // // // // trata evento quando o mouse é liberado logo depois de pressionadotrata evento quando o mouse é liberado logo depois de pressionadotrata evento quando o mouse é liberado logo depois de pressionadotrata evento quando o mouse é liberado logo depois de pressionado
41 public voidpublic voidpublic voidpublic void mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event )
Cria handler de evento para eventos de
mouse
Registra um handler de evento
Implementa interfaces ouvintes de
mouse
Celso Olivete Júnior 159
41 public voidpublic voidpublic voidpublic void mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event ) mouseClicked( MouseEvent event )
42 { { { {
43 statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( "Clicked at [%d, %d]""Clicked at [%d, %d]""Clicked at [%d, %d]""Clicked at [%d, %d]", , , ,
44 event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY() ) ); ) ); ) ); ) );
45 } } } } // // // // fim do método fim do método fim do método fim do método mouseClickedmouseClickedmouseClickedmouseClicked
47 // // // // trata evento quando mouse é pressionadotrata evento quando mouse é pressionadotrata evento quando mouse é pressionadotrata evento quando mouse é pressionado
48 public voidpublic voidpublic voidpublic void mousePressed( MouseEvent event ) mousePressed( MouseEvent event ) mousePressed( MouseEvent event ) mousePressed( MouseEvent event )
49 { { { {
50 statusBar.setText( St statusBar.setText( St statusBar.setText( St statusBar.setText( String.format( ring.format( ring.format( ring.format( "Pressed at [%d, %d]""Pressed at [%d, %d]""Pressed at [%d, %d]""Pressed at [%d, %d]", , , ,
51 event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY() ) ); ) ); ) ); ) );
52 } } } } // // // // fim do método fim do método fim do método fim do método mousePressedmousePressedmousePressedmousePressed
54 // // // // trata evento quando mouse é liberado depois da operação de arrastartrata evento quando mouse é liberado depois da operação de arrastartrata evento quando mouse é liberado depois da operação de arrastartrata evento quando mouse é liberado depois da operação de arrastar
55 public voidpublic voidpublic voidpublic void mouseReleased( M mouseReleased( M mouseReleased( M mouseReleased( MouseEvent event )ouseEvent event )ouseEvent event )ouseEvent event )
56 { { { {
57 statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( "Released at [%d, %d]""Released at [%d, %d]""Released at [%d, %d]""Released at [%d, %d]", , , ,
58 event.getX()event.getX()event.getX()event.getX(), , , , event.getY()event.getY()event.getY()event.getY() ) ); ) ); ) ); ) );
59 } } } } // // // // fim do método fim do método fim do método fim do método mouseReleasedmouseReleasedmouseReleasedmouseReleased
Determina a localização do clique de
mouse
Declara o método mouseClicked
Declara o método mousePressed
Declara o método mouseReleased
Introdução à Tecnologia Java – 02/2012
Resumo60
61 // // // // trata evento quando mouse entra na áreatrata evento quando mouse entra na áreatrata evento quando mouse entra na áreatrata evento quando mouse entra na área
62 public voidpublic voidpublic voidpublic void mouseEntered( MouseEvent event ) mouseEntered( MouseEvent event ) mouseEntered( MouseEvent event ) mouseEntered( MouseEvent event )
63 { { { {
64 statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( "Mouse entered at [%d, %d]""Mouse entered at [%d, %d]""Mouse entered at [%d, %d]""Mouse entered at [%d, %d]", , , ,
65 event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY() ) ); ) ); ) ); ) );
66 mousePanel.setBackground( mousePanel.setBackground( mousePanel.setBackground( mousePanel.setBackground( Color.GREENColor.GREENColor.GREENColor.GREEN ); ); ); );
67 } } } } // // // // fim do métodofim do métodofim do métodofim do método mouseEnteredmouseEnteredmouseEnteredmouseEntered
68
Celso Olivete Júnior 160
69 // // // // trata evento quando mouse trata evento quando mouse trata evento quando mouse trata evento quando mouse sai dasai dasai dasai da área área área área
70 public voidpublic voidpublic voidpublic void mouseExited( MouseEvent event ) mouseExited( MouseEvent event ) mouseExited( MouseEvent event ) mouseExited( MouseEvent event )
71 { { { {
72 statusBar.setText( statusBar.setText( statusBar.setText( statusBar.setText( "Mouse out"Mouse out"Mouse out"Mouse outside JPanel"side JPanel"side JPanel"side JPanel" ); ); ); );
73 mousePanel.setBackground( mousePanel.setBackground( mousePanel.setBackground( mousePanel.setBackground( Color.WHITEColor.WHITEColor.WHITEColor.WHITE ); ); ); );
74 } } } } // // // // fim do métodofim do métodofim do métodofim do método mouseExitedmouseExitedmouseExitedmouseExited
75
Introdução à Tecnologia Java – 02/2012
Resumo60
61 // // // // trata evento quando mouse entra na áreatrata evento quando mouse entra na áreatrata evento quando mouse entra na áreatrata evento quando mouse entra na área
62 public voidpublic voidpublic voidpublic void mouseEntered( MouseEvent event ) mouseEntered( MouseEvent event ) mouseEntered( MouseEvent event ) mouseEntered( MouseEvent event )
63 { { { {
64 statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( "Mouse entered at [%d, %d]""Mouse entered at [%d, %d]""Mouse entered at [%d, %d]""Mouse entered at [%d, %d]", , , ,
65 event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY() ) ); ) ); ) ); ) );
66 mousePanel.setBackground( mousePanel.setBackground( mousePanel.setBackground( mousePanel.setBackground( Color.GREENColor.GREENColor.GREENColor.GREEN ); ); ); );
67 } } } } // // // // fim do métodofim do métodofim do métodofim do método mouseEnteredmouseEnteredmouseEnteredmouseEntered
68
Declara o método mouseEntered
Celso Olivete Júnior 161
69 // // // // trata evento quando mouse trata evento quando mouse trata evento quando mouse trata evento quando mouse sai dasai dasai dasai da área área área área
70 public voidpublic voidpublic voidpublic void mouseExited( MouseEvent event ) mouseExited( MouseEvent event ) mouseExited( MouseEvent event ) mouseExited( MouseEvent event )
71 { { { {
72 statusBar.setText( statusBar.setText( statusBar.setText( statusBar.setText( "Mouse out"Mouse out"Mouse out"Mouse outside JPanel"side JPanel"side JPanel"side JPanel" ); ); ); );
73 mousePanel.setBackground( mousePanel.setBackground( mousePanel.setBackground( mousePanel.setBackground( Color.WHITEColor.WHITEColor.WHITEColor.WHITE ); ); ); );
74 } } } } // // // // fim do métodofim do métodofim do métodofim do método mouseExitedmouseExitedmouseExitedmouseExited
75
Introdução à Tecnologia Java – 02/2012
Resumo60
61 // // // // trata evento quando mouse entra na áreatrata evento quando mouse entra na áreatrata evento quando mouse entra na áreatrata evento quando mouse entra na área
62 public voidpublic voidpublic voidpublic void mouseEntered( MouseEvent event ) mouseEntered( MouseEvent event ) mouseEntered( MouseEvent event ) mouseEntered( MouseEvent event )
63 { { { {
64 statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( "Mouse entered at [%d, %d]""Mouse entered at [%d, %d]""Mouse entered at [%d, %d]""Mouse entered at [%d, %d]", , , ,
65 event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY() ) ); ) ); ) ); ) );
66 mousePanel.setBackground( mousePanel.setBackground( mousePanel.setBackground( mousePanel.setBackground( Color.GREENColor.GREENColor.GREENColor.GREEN ); ); ); );
67 } } } } // // // // fim do métodofim do métodofim do métodofim do método mouseEnteredmouseEnteredmouseEnteredmouseEntered
68
Declara o método mouseEntered
Configura o segundo plano de JPanel
Celso Olivete Júnior 162
69 // // // // trata evento quando mouse trata evento quando mouse trata evento quando mouse trata evento quando mouse sai dasai dasai dasai da área área área área
70 public voidpublic voidpublic voidpublic void mouseExited( MouseEvent event ) mouseExited( MouseEvent event ) mouseExited( MouseEvent event ) mouseExited( MouseEvent event )
71 { { { {
72 statusBar.setText( statusBar.setText( statusBar.setText( statusBar.setText( "Mouse out"Mouse out"Mouse out"Mouse outside JPanel"side JPanel"side JPanel"side JPanel" ); ); ); );
73 mousePanel.setBackground( mousePanel.setBackground( mousePanel.setBackground( mousePanel.setBackground( Color.WHITEColor.WHITEColor.WHITEColor.WHITE ); ); ); );
74 } } } } // // // // fim do métodofim do métodofim do métodofim do método mouseExitedmouseExitedmouseExitedmouseExited
75
Introdução à Tecnologia Java – 02/2012
Resumo60
61 // // // // trata evento quando mouse entra na áreatrata evento quando mouse entra na áreatrata evento quando mouse entra na áreatrata evento quando mouse entra na área
62 public voidpublic voidpublic voidpublic void mouseEntered( MouseEvent event ) mouseEntered( MouseEvent event ) mouseEntered( MouseEvent event ) mouseEntered( MouseEvent event )
63 { { { {
64 statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( "Mouse entered at [%d, %d]""Mouse entered at [%d, %d]""Mouse entered at [%d, %d]""Mouse entered at [%d, %d]", , , ,
65 event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY() ) ); ) ); ) ); ) );
66 mousePanel.setBackground( mousePanel.setBackground( mousePanel.setBackground( mousePanel.setBackground( Color.GREENColor.GREENColor.GREENColor.GREEN ); ); ); );
67 } } } } // // // // fim do métodofim do métodofim do métodofim do método mouseEnteredmouseEnteredmouseEnteredmouseEntered
68
Declara o método mouseEntered
Configura o segundo plano de JPanel
Celso Olivete Júnior 163
69 // // // // trata evento quando mouse trata evento quando mouse trata evento quando mouse trata evento quando mouse sai dasai dasai dasai da área área área área
70 public voidpublic voidpublic voidpublic void mouseExited( MouseEvent event ) mouseExited( MouseEvent event ) mouseExited( MouseEvent event ) mouseExited( MouseEvent event )
71 { { { {
72 statusBar.setText( statusBar.setText( statusBar.setText( statusBar.setText( "Mouse out"Mouse out"Mouse out"Mouse outside JPanel"side JPanel"side JPanel"side JPanel" ); ); ); );
73 mousePanel.setBackground( mousePanel.setBackground( mousePanel.setBackground( mousePanel.setBackground( Color.WHITEColor.WHITEColor.WHITEColor.WHITE ); ); ); );
74 } } } } // // // // fim do métodofim do métodofim do métodofim do método mouseExitedmouseExitedmouseExitedmouseExited
75
Declara o método mouseExited
Introdução à Tecnologia Java – 02/2012
Resumo60
61 // // // // trata evento quando mouse entra na áreatrata evento quando mouse entra na áreatrata evento quando mouse entra na áreatrata evento quando mouse entra na área
62 public voidpublic voidpublic voidpublic void mouseEntered( MouseEvent event ) mouseEntered( MouseEvent event ) mouseEntered( MouseEvent event ) mouseEntered( MouseEvent event )
63 { { { {
64 statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( "Mouse entered at [%d, %d]""Mouse entered at [%d, %d]""Mouse entered at [%d, %d]""Mouse entered at [%d, %d]", , , ,
65 event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY() ) ); ) ); ) ); ) );
66 mousePanel.setBackground( mousePanel.setBackground( mousePanel.setBackground( mousePanel.setBackground( Color.GREENColor.GREENColor.GREENColor.GREEN ); ); ); );
67 } } } } // // // // fim do métodofim do métodofim do métodofim do método mouseEnteredmouseEnteredmouseEnteredmouseEntered
68
Declara o método mouseEntered
Configura o segundo plano de JPanel
Celso Olivete Júnior 164
69 // // // // trata evento quando mouse trata evento quando mouse trata evento quando mouse trata evento quando mouse sai dasai dasai dasai da área área área área
70 public voidpublic voidpublic voidpublic void mouseExited( MouseEvent event ) mouseExited( MouseEvent event ) mouseExited( MouseEvent event ) mouseExited( MouseEvent event )
71 { { { {
72 statusBar.setText( statusBar.setText( statusBar.setText( statusBar.setText( "Mouse out"Mouse out"Mouse out"Mouse outside JPanel"side JPanel"side JPanel"side JPanel" ); ); ); );
73 mousePanel.setBackground( mousePanel.setBackground( mousePanel.setBackground( mousePanel.setBackground( Color.WHITEColor.WHITEColor.WHITEColor.WHITE ); ); ); );
74 } } } } // // // // fim do métodofim do métodofim do métodofim do método mouseExitedmouseExitedmouseExitedmouseExited
75
Declara o método mouseExited
Configura o segundo plano de JPanel
Introdução à Tecnologia Java – 02/2012
Resumo
76 // MouseMotionListener event handlers // MouseMotionListener event handlers // MouseMotionListener event handlers // MouseMotionListener event handlers
77 // // // // trata trata trata trata evento MouseMotionListenerevento MouseMotionListenerevento MouseMotionListenerevento MouseMotionListener
78 public voidpublic voidpublic voidpublic void mouseDragged( MouseEvent event ) mouseDragged( MouseEvent event ) mouseDragged( MouseEvent event ) mouseDragged( MouseEvent event )
79 { { { {
80 statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( "Dragged at [%d, %d]""Dragged at [%d, %d]""Dragged at [%d, %d]""Dragged at [%d, %d]", , , ,
81 eveeveeveevent.getX(), event.getY()nt.getX(), event.getY()nt.getX(), event.getY()nt.getX(), event.getY() ) ); ) ); ) ); ) );
82 } } } } // // // // fim do método fim do método fim do método fim do método mouseDraggedmouseDraggedmouseDraggedmouseDragged
83
84 // // // // trata evento quanto usuário move o trata evento quanto usuário move o trata evento quanto usuário move o trata evento quanto usuário move o mousemousemousemouse
Celso Olivete Júnior 165
84 // // // // trata evento quanto usuário move o trata evento quanto usuário move o trata evento quanto usuário move o trata evento quanto usuário move o mousemousemousemouse
85 public voidpublic voidpublic voidpublic void mouseMoved( MouseEvent event ) mouseMoved( MouseEvent event ) mouseMoved( MouseEvent event ) mouseMoved( MouseEvent event )
86 { { { {
87 statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( "Moved a"Moved a"Moved a"Moved at [%d, %d]"t [%d, %d]"t [%d, %d]"t [%d, %d]", , , ,
88 event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY() ) ); ) ); ) ); ) );
89 } } } } // // // // fim do método fim do método fim do método fim do método mouseMovedmouseMovedmouseMovedmouseMoved
90 } } } } // // // // fim da classefim da classefim da classefim da classe MouseHandler MouseHandler MouseHandler MouseHandler interna interna interna interna
91 } } } } // // // // fim da fim da fim da fim da classclassclassclasseeee MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame
Introdução à Tecnologia Java – 02/2012
Resumo
76 // MouseMotionListener event handlers // MouseMotionListener event handlers // MouseMotionListener event handlers // MouseMotionListener event handlers
77 // // // // trata trata trata trata evento MouseMotionListenerevento MouseMotionListenerevento MouseMotionListenerevento MouseMotionListener
78 public voidpublic voidpublic voidpublic void mouseDragged( MouseEvent event ) mouseDragged( MouseEvent event ) mouseDragged( MouseEvent event ) mouseDragged( MouseEvent event )
79 { { { {
80 statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( "Dragged at [%d, %d]""Dragged at [%d, %d]""Dragged at [%d, %d]""Dragged at [%d, %d]", , , ,
81 eveeveeveevent.getX(), event.getY()nt.getX(), event.getY()nt.getX(), event.getY()nt.getX(), event.getY() ) ); ) ); ) ); ) );
82 } } } } // // // // fim do método fim do método fim do método fim do método mouseDraggedmouseDraggedmouseDraggedmouseDragged
83
84 // // // // trata evento quanto usuário move o trata evento quanto usuário move o trata evento quanto usuário move o trata evento quanto usuário move o mousemousemousemouse
Declara o método mouseDragged
Celso Olivete Júnior 166
84 // // // // trata evento quanto usuário move o trata evento quanto usuário move o trata evento quanto usuário move o trata evento quanto usuário move o mousemousemousemouse
85 public voidpublic voidpublic voidpublic void mouseMoved( MouseEvent event ) mouseMoved( MouseEvent event ) mouseMoved( MouseEvent event ) mouseMoved( MouseEvent event )
86 { { { {
87 statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( "Moved a"Moved a"Moved a"Moved at [%d, %d]"t [%d, %d]"t [%d, %d]"t [%d, %d]", , , ,
88 event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY() ) ); ) ); ) ); ) );
89 } } } } // // // // fim do método fim do método fim do método fim do método mouseMovedmouseMovedmouseMovedmouseMoved
90 } } } } // // // // fim da classefim da classefim da classefim da classe MouseHandler MouseHandler MouseHandler MouseHandler interna interna interna interna
91 } } } } // // // // fim da fim da fim da fim da classclassclassclasseeee MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame
Introdução à Tecnologia Java – 02/2012
Resumo
76 // MouseMotionListener event handlers // MouseMotionListener event handlers // MouseMotionListener event handlers // MouseMotionListener event handlers
77 // // // // trata trata trata trata evento MouseMotionListenerevento MouseMotionListenerevento MouseMotionListenerevento MouseMotionListener
78 public voidpublic voidpublic voidpublic void mouseDragged( MouseEvent event ) mouseDragged( MouseEvent event ) mouseDragged( MouseEvent event ) mouseDragged( MouseEvent event )
79 { { { {
80 statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( "Dragged at [%d, %d]""Dragged at [%d, %d]""Dragged at [%d, %d]""Dragged at [%d, %d]", , , ,
81 eveeveeveevent.getX(), event.getY()nt.getX(), event.getY()nt.getX(), event.getY()nt.getX(), event.getY() ) ); ) ); ) ); ) );
82 } } } } // // // // fim do método fim do método fim do método fim do método mouseDraggedmouseDraggedmouseDraggedmouseDragged
83
84 // // // // trata evento quanto usuário move o trata evento quanto usuário move o trata evento quanto usuário move o trata evento quanto usuário move o mousemousemousemouse
Declara o método mouseDragged
Celso Olivete Júnior 167
84 // // // // trata evento quanto usuário move o trata evento quanto usuário move o trata evento quanto usuário move o trata evento quanto usuário move o mousemousemousemouse
85 public voidpublic voidpublic voidpublic void mouseMoved( MouseEvent event ) mouseMoved( MouseEvent event ) mouseMoved( MouseEvent event ) mouseMoved( MouseEvent event )
86 { { { {
87 statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( statusBar.setText( String.format( "Moved a"Moved a"Moved a"Moved at [%d, %d]"t [%d, %d]"t [%d, %d]"t [%d, %d]", , , ,
88 event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY()event.getX(), event.getY() ) ); ) ); ) ); ) );
89 } } } } // // // // fim do método fim do método fim do método fim do método mouseMovedmouseMovedmouseMovedmouseMoved
90 } } } } // // // // fim da classefim da classefim da classefim da classe MouseHandler MouseHandler MouseHandler MouseHandler interna interna interna interna
91 } } } } // // // // fim da fim da fim da fim da classclassclassclasseeee MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame MouseTrackerFrame
Declara o método mouseMoved
Introdução à Tecnologia Java – 02/2012
Resumo 1 // Fig. 11.29: MouseTrackerFrame.java// Fig. 11.29: MouseTrackerFrame.java// Fig. 11.29: MouseTrackerFrame.java// Fig. 11.29: MouseTrackerFrame.java
2 // Test// Test// Test// Testandoandoandoando MouseTrackerFrame. MouseTrackerFrame. MouseTrackerFrame. MouseTrackerFrame.
3 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
4
5 publicpublicpublicpublic classclassclassclass MouseTracker MouseTracker MouseTracker MouseTracker
6 {{{{
7 publicpublicpublicpublic staticstaticstaticstatic voidvoidvoidvoid main( String args[] ) main( String args[] ) main( String args[] ) main( String args[] )
8 { { { {
Celso Olivete Júnior 168
9 MouseTrackerFrame mouseTrackerFrame = MouseTrackerFrame mouseTrackerFrame = MouseTrackerFrame mouseTrackerFrame = MouseTrackerFrame mouseTrackerFrame = nnnnewewewew MouseTrackerFrame(); MouseTrackerFrame(); MouseTrackerFrame(); MouseTrackerFrame();
10 mouseTrackerFrame.setDefaultCloseOperation( mouseTrackerFrame.setDefaultCloseOperation( mouseTrackerFrame.setDefaultCloseOperation( mouseTrackerFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSE ); ); ); );
11 mouseTrackerFrame.setSize( mouseTrackerFrame.setSize( mouseTrackerFrame.setSize( mouseTrackerFrame.setSize( 300300300300, , , , 100100100100 ); ); ); ); // // // // configura o tamanho doconfigura o tamanho doconfigura o tamanho doconfigura o tamanho do frame frame frame frame
12 mouseTrackerFrame.setVisible( mouseTrackerFrame.setVisible( mouseTrackerFrame.setVisible( mouseTrackerFrame.setVisible( truetruetruetrue ); ); ); ); // // // // exibe oexibe oexibe oexibe o frame frame frame frame
13 } } } } // // // // fim de fim de fim de fim de mainmainmainmain
14 } } } } // // // // fim da classe fim da classe fim da classe fim da classe MouseTrackerMouseTrackerMouseTrackerMouseTracker
Introdução à Tecnologia Java – 02/2012
Resumo
Celso Olivete Júnior 169
Introdução à Tecnologia Java – 02/2012
Classes adaptadoras
• Implementa interface ouvinte de evento.
•Fornece implementação-padrão para todos
os métodos de tratamento de eventos.os métodos de tratamento de eventos.
Celso Olivete Júnior 170
Introdução à Tecnologia Java – 02/2012
Herdando MouseAdapter
• MouseAdapter:
•Classe adaptadora para as interfaces
MouseListener e MouseMotionListener.
•Estender a classe permite sobrescrever
somente os métodos que você deseja utilizar.
Celso Olivete Júnior 171
Introdução à Tecnologia Java – 02/2012
Classes Adaptadoras
Classe adaptadora de evento em java.awt.eventjava.awt.eventjava.awt.eventjava.awt.event
Implementa interface
Classes adaptadoras de evento e as interfaces
que elas implementam no pacote java.awt.event.
Celso Olivete Júnior 172
java.awt.eventjava.awt.eventjava.awt.eventjava.awt.event
ComponentAdapterComponentAdapterComponentAdapterComponentAdapter ComponentListenerComponentListenerComponentListenerComponentListener
ContainerAdapterContainerAdapterContainerAdapterContainerAdapter ContainerListenerContainerListenerContainerListenerContainerListener
FocusAdapterFocusAdapterFocusAdapterFocusAdapter FocusListenerFocusListenerFocusListenerFocusListener
KeyAdapterKeyAdapterKeyAdapterKeyAdapter KeyListenerKeyListenerKeyListenerKeyListener
MouseAdapterMouseAdapterMouseAdapterMouseAdapter MouseListenerMouseListenerMouseListenerMouseListener
MouseMotionAdapterMouseMotionAdapterMouseMotionAdapterMouseMotionAdapter MouseMotionListenMouseMotionListenMouseMotionListenMouseMotionListenerererer
WindowAdapterWindowAdapterWindowAdapterWindowAdapter WindowListenerWindowListenerWindowListenerWindowListener
Introdução à Tecnologia Java – 02/2012
Exemplo 1 // Fig. 11.31: MouseDetailsFrame.java// Fig. 11.31: MouseDetailsFrame.java// Fig. 11.31: MouseDetailsFrame.java// Fig. 11.31: MouseDetailsFrame.java
2 // // // // Demonstrando cliques de mouse e distinguindo entre botões do mouseDemonstrando cliques de mouse e distinguindo entre botões do mouseDemonstrando cliques de mouse e distinguindo entre botões do mouseDemonstrando cliques de mouse e distinguindo entre botões do mouse....
3 importimportimportimport java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout;
4 importimportimportimport java.awt.Graphics; java.awt.Graphics; java.awt.Graphics; java.awt.Graphics;
5 importimportimportimport java.awt.event.MouseAdapter; java.awt.event.MouseAdapter; java.awt.event.MouseAdapter; java.awt.event.MouseAdapter;
6 importimportimportimport java.awt.event.MouseEvent java.awt.event.MouseEvent java.awt.event.MouseEvent java.awt.event.MouseEvent;;;;
7 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
8 importimportimportimport javax.swing.JLabel; javax.swing.JLabel; javax.swing.JLabel; javax.swing.JLabel;
9
10 public classpublic classpublic classpublic class MouseDetailsFrame MouseDetailsFrame MouseDetailsFrame MouseDetailsFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
Celso Olivete Júnior 173
10 public classpublic classpublic classpublic class MouseDetailsFrame MouseDetailsFrame MouseDetailsFrame MouseDetailsFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
11 {{{{
12 privateprivateprivateprivate String details; String details; String details; String details; // // // // representação Stringrepresentação Stringrepresentação Stringrepresentação String
13 privateprivateprivateprivate JLabel statusBar; JLabel statusBar; JLabel statusBar; JLabel statusBar; // JLabel // JLabel // JLabel // JLabel quequequeque ap ap ap aparece no botão de janarece no botão de janarece no botão de janarece no botão de janelaelaelaela
14
15 // construtor // construtor // construtor // construtor configura barra de títuloconfigura barra de títuloconfigura barra de títuloconfigura barra de título String String String String e registra o listener de mousee registra o listener de mousee registra o listener de mousee registra o listener de mouse
16 publicpublicpublicpublic MouseDetailsFrame() MouseDetailsFrame() MouseDetailsFrame() MouseDetailsFrame()
17 { { { {
18 supersupersupersuper( ( ( ( "Mouse clicks and buttons""Mouse clicks and buttons""Mouse clicks and buttons""Mouse clicks and buttons" ); ); ); );
19
20 statusBar = statusBar = statusBar = statusBar = newnewnewnew JLabel( JLabel( JLabel( JLabel( "Click the mouse""Click the mouse""Click the mouse""Click the mouse" ); ); ); );
21 add( statusBar, add( statusBar, add( statusBar, add( statusBar, BorderLayout.SOUTHBorderLayout.SOUTHBorderLayout.SOUTHBorderLayout.SOUTH ); ); ); );
22 addMouseListener( addMouseListener( addMouseListener( addMouseListener( newnewnewnew MouseClickHandler() ); MouseClickHandler() ); MouseClickHandler() ); MouseClickHandler() ); // // // // adiciona handleradiciona handleradiciona handleradiciona handler
23 } } } } // // // // fim do construtor fim do construtor fim do construtor fim do construtor MouseDetailsFrame MouseDetailsFrame MouseDetailsFrame MouseDetailsFrame
24
Registra um handler de evento
Introdução à Tecnologia Java – 02/2012
Exemplo25 // // // // classe interna para tratar eventos declasse interna para tratar eventos declasse interna para tratar eventos declasse interna para tratar eventos de mouse mouse mouse mouse
26 private classprivate classprivate classprivate class MouseClickHandler MouseClickHandler MouseClickHandler MouseClickHandler extendsextendsextendsextends MouseAdapter MouseAdapter MouseAdapter MouseAdapter
27 { { { {
28 // // // // trata evento de clique de mouse e determina qual botão foi pressionadotrata evento de clique de mouse e determina qual botão foi pressionadotrata evento de clique de mouse e determina qual botão foi pressionadotrata evento de clique de mouse e determina qual botão foi pressionado
29 public voidpublic voidpublic voidpublic void mouseClicked( MouseEve mouseClicked( MouseEve mouseClicked( MouseEve mouseClicked( MouseEvent event )nt event )nt event )nt event )
30 { { { {
31 intintintint xPos = event.getX(); xPos = event.getX(); xPos = event.getX(); xPos = event.getX(); // // // // obtém posição x do mouseobtém posição x do mouseobtém posição x do mouseobtém posição x do mouse
32 intintintint yPos = event.getY(); yPos = event.getY(); yPos = event.getY(); yPos = event.getY(); // // // // obtém posição obtém posição obtém posição obtém posição yyyy do mouse do mouse do mouse do mouse
33
Celso Olivete Júnior 174
34 details = String.format( details = String.format( details = String.format( details = String.format( "Clicked %d time(s)""Clicked %d time(s)""Clicked %d time(s)""Clicked %d time(s)", , , ,
35 event.getClicevent.getClicevent.getClicevent.getClickCount()kCount()kCount()kCount() ); ); ); );
36
37 ifififif ( ( ( ( event.isMetaDown()event.isMetaDown()event.isMetaDown()event.isMetaDown() ) ) ) ) // // // // botão direito do botão direito do botão direito do botão direito do mouse mouse mouse mouse
38 details += details += details += details += " with right mouse button"" with right mouse button"" with right mouse button"" with right mouse button";;;;
39 else ifelse ifelse ifelse if ( ( ( ( event.isAltDown()event.isAltDown()event.isAltDown()event.isAltDown() ) ) ) ) // // // // botão do meio do mousebotão do meio do mousebotão do meio do mousebotão do meio do mouse
40 details += details += details += details += " with ce" with ce" with ce" with center mouse button"nter mouse button"nter mouse button"nter mouse button";;;;
41 elseelseelseelse // // // // botão esquerdo do mousebotão esquerdo do mousebotão esquerdo do mousebotão esquerdo do mouse
42 details += details += details += details += " with left mouse button"" with left mouse button"" with left mouse button"" with left mouse button";;;;
43 44 statusBar.setText( details ); statusBar.setText( details ); statusBar.setText( details ); statusBar.setText( details ); // // // // exibe mensagemexibe mensagemexibe mensagemexibe mensagem na na na na statusBarstatusBarstatusBarstatusBar
45 } } } } // // // // fim do método fim do método fim do método fim do método mmmmouseClickedouseClickedouseClickedouseClicked
46 } } } } // // // // fim da classe interna private MouseClickHandlerfim da classe interna private MouseClickHandlerfim da classe interna private MouseClickHandlerfim da classe interna private MouseClickHandler
47 } } } } // // // // fim da classe fim da classe fim da classe fim da classe MouseDetailsFrameMouseDetailsFrameMouseDetailsFrameMouseDetailsFrame
Introdução à Tecnologia Java – 02/2012
Exemplo25 // // // // classe interna para tratar eventos declasse interna para tratar eventos declasse interna para tratar eventos declasse interna para tratar eventos de mouse mouse mouse mouse
26 private classprivate classprivate classprivate class MouseClickHandler MouseClickHandler MouseClickHandler MouseClickHandler extendsextendsextendsextends MouseAdapter MouseAdapter MouseAdapter MouseAdapter
27 { { { {
28 // // // // trata evento de clique de mouse e determina qual botão foi pressionadotrata evento de clique de mouse e determina qual botão foi pressionadotrata evento de clique de mouse e determina qual botão foi pressionadotrata evento de clique de mouse e determina qual botão foi pressionado
29 public voidpublic voidpublic voidpublic void mouseClicked( MouseEve mouseClicked( MouseEve mouseClicked( MouseEve mouseClicked( MouseEvent event )nt event )nt event )nt event )
30 { { { {
31 intintintint xPos = event.getX(); xPos = event.getX(); xPos = event.getX(); xPos = event.getX(); // // // // obtém posição x do mouseobtém posição x do mouseobtém posição x do mouseobtém posição x do mouse
32 intintintint yPos = event.getY(); yPos = event.getY(); yPos = event.getY(); yPos = event.getY(); // // // // obtém posição obtém posição obtém posição obtém posição yyyy do mouse do mouse do mouse do mouse
33
Celso Olivete Júnior 175
34 details = String.format( details = String.format( details = String.format( details = String.format( "Clicked %d time(s)""Clicked %d time(s)""Clicked %d time(s)""Clicked %d time(s)", , , ,
35 event.getClicevent.getClicevent.getClicevent.getClickCount()kCount()kCount()kCount() ); ); ); );
36
37 ifififif ( ( ( ( event.isMetaDown()event.isMetaDown()event.isMetaDown()event.isMetaDown() ) ) ) ) // // // // botão direito do botão direito do botão direito do botão direito do mouse mouse mouse mouse
38 details += details += details += details += " with right mouse button"" with right mouse button"" with right mouse button"" with right mouse button";;;;
39 else ifelse ifelse ifelse if ( ( ( ( event.isAltDown()event.isAltDown()event.isAltDown()event.isAltDown() ) ) ) ) // // // // botão do meio do mousebotão do meio do mousebotão do meio do mousebotão do meio do mouse
40 details += details += details += details += " with ce" with ce" with ce" with center mouse button"nter mouse button"nter mouse button"nter mouse button";;;;
41 elseelseelseelse // // // // botão esquerdo do mousebotão esquerdo do mousebotão esquerdo do mousebotão esquerdo do mouse
42 details += details += details += details += " with left mouse button"" with left mouse button"" with left mouse button"" with left mouse button";;;;
43 44 statusBar.setText( details ); statusBar.setText( details ); statusBar.setText( details ); statusBar.setText( details ); // // // // exibe mensagemexibe mensagemexibe mensagemexibe mensagem na na na na statusBarstatusBarstatusBarstatusBar
45 } } } } // // // // fim do método fim do método fim do método fim do método mmmmouseClickedouseClickedouseClickedouseClicked
46 } } } } // // // // fim da classe interna private MouseClickHandlerfim da classe interna private MouseClickHandlerfim da classe interna private MouseClickHandlerfim da classe interna private MouseClickHandler
47 } } } } // // // // fim da classe fim da classe fim da classe fim da classe MouseDetailsFrameMouseDetailsFrameMouseDetailsFrameMouseDetailsFrame
Obtém o número de vezes que o botão do
mouse foi clicado
Introdução à Tecnologia Java – 02/2012
Exemplo25 // // // // classe interna para tratar eventos declasse interna para tratar eventos declasse interna para tratar eventos declasse interna para tratar eventos de mouse mouse mouse mouse
26 private classprivate classprivate classprivate class MouseClickHandler MouseClickHandler MouseClickHandler MouseClickHandler extendsextendsextendsextends MouseAdapter MouseAdapter MouseAdapter MouseAdapter
27 { { { {
28 // // // // trata evento de clique de mouse e determina qual botão foi pressionadotrata evento de clique de mouse e determina qual botão foi pressionadotrata evento de clique de mouse e determina qual botão foi pressionadotrata evento de clique de mouse e determina qual botão foi pressionado
29 public voidpublic voidpublic voidpublic void mouseClicked( MouseEve mouseClicked( MouseEve mouseClicked( MouseEve mouseClicked( MouseEvent event )nt event )nt event )nt event )
30 { { { {
31 intintintint xPos = event.getX(); xPos = event.getX(); xPos = event.getX(); xPos = event.getX(); // // // // obtém posição x do mouseobtém posição x do mouseobtém posição x do mouseobtém posição x do mouse
32 intintintint yPos = event.getY(); yPos = event.getY(); yPos = event.getY(); yPos = event.getY(); // // // // obtém posição obtém posição obtém posição obtém posição yyyy do mouse do mouse do mouse do mouse
33
Celso Olivete Júnior 176
34 details = String.format( details = String.format( details = String.format( details = String.format( "Clicked %d time(s)""Clicked %d time(s)""Clicked %d time(s)""Clicked %d time(s)", , , ,
35 event.getClicevent.getClicevent.getClicevent.getClickCount()kCount()kCount()kCount() ); ); ); );
36
37 ifififif ( ( ( ( event.isMetaDown()event.isMetaDown()event.isMetaDown()event.isMetaDown() ) ) ) ) // // // // botão direito do botão direito do botão direito do botão direito do mouse mouse mouse mouse
38 details += details += details += details += " with right mouse button"" with right mouse button"" with right mouse button"" with right mouse button";;;;
39 else ifelse ifelse ifelse if ( ( ( ( event.isAltDown()event.isAltDown()event.isAltDown()event.isAltDown() ) ) ) ) // // // // botão do meio do mousebotão do meio do mousebotão do meio do mousebotão do meio do mouse
40 details += details += details += details += " with ce" with ce" with ce" with center mouse button"nter mouse button"nter mouse button"nter mouse button";;;;
41 elseelseelseelse // // // // botão esquerdo do mousebotão esquerdo do mousebotão esquerdo do mousebotão esquerdo do mouse
42 details += details += details += details += " with left mouse button"" with left mouse button"" with left mouse button"" with left mouse button";;;;
43 44 statusBar.setText( details ); statusBar.setText( details ); statusBar.setText( details ); statusBar.setText( details ); // // // // exibe mensagemexibe mensagemexibe mensagemexibe mensagem na na na na statusBarstatusBarstatusBarstatusBar
45 } } } } // // // // fim do método fim do método fim do método fim do método mmmmouseClickedouseClickedouseClickedouseClicked
46 } } } } // // // // fim da classe interna private MouseClickHandlerfim da classe interna private MouseClickHandlerfim da classe interna private MouseClickHandlerfim da classe interna private MouseClickHandler
47 } } } } // // // // fim da classe fim da classe fim da classe fim da classe MouseDetailsFrameMouseDetailsFrameMouseDetailsFrameMouseDetailsFrame
Obtém o número de vezes que o botão do
mouse foi clicado
Testa se o botão direito do mouse foi clicado
Introdução à Tecnologia Java – 02/2012
Exemplo25 // // // // classe interna para tratar eventos declasse interna para tratar eventos declasse interna para tratar eventos declasse interna para tratar eventos de mouse mouse mouse mouse
26 private classprivate classprivate classprivate class MouseClickHandler MouseClickHandler MouseClickHandler MouseClickHandler extendsextendsextendsextends MouseAdapter MouseAdapter MouseAdapter MouseAdapter
27 { { { {
28 // // // // trata evento de clique de mouse e determina qual botão foi pressionadotrata evento de clique de mouse e determina qual botão foi pressionadotrata evento de clique de mouse e determina qual botão foi pressionadotrata evento de clique de mouse e determina qual botão foi pressionado
29 public voidpublic voidpublic voidpublic void mouseClicked( MouseEve mouseClicked( MouseEve mouseClicked( MouseEve mouseClicked( MouseEvent event )nt event )nt event )nt event )
30 { { { {
31 intintintint xPos = event.getX(); xPos = event.getX(); xPos = event.getX(); xPos = event.getX(); // // // // obtém posição x do mouseobtém posição x do mouseobtém posição x do mouseobtém posição x do mouse
32 intintintint yPos = event.getY(); yPos = event.getY(); yPos = event.getY(); yPos = event.getY(); // // // // obtém posição obtém posição obtém posição obtém posição yyyy do mouse do mouse do mouse do mouse
33
Celso Olivete Júnior 177
34 details = String.format( details = String.format( details = String.format( details = String.format( "Clicked %d time(s)""Clicked %d time(s)""Clicked %d time(s)""Clicked %d time(s)", , , ,
35 event.getClicevent.getClicevent.getClicevent.getClickCount()kCount()kCount()kCount() ); ); ); );
36
37 ifififif ( ( ( ( event.isMetaDown()event.isMetaDown()event.isMetaDown()event.isMetaDown() ) ) ) ) // // // // botão direito do botão direito do botão direito do botão direito do mouse mouse mouse mouse
38 details += details += details += details += " with right mouse button"" with right mouse button"" with right mouse button"" with right mouse button";;;;
39 else ifelse ifelse ifelse if ( ( ( ( event.isAltDown()event.isAltDown()event.isAltDown()event.isAltDown() ) ) ) ) // // // // botão do meio do mousebotão do meio do mousebotão do meio do mousebotão do meio do mouse
40 details += details += details += details += " with ce" with ce" with ce" with center mouse button"nter mouse button"nter mouse button"nter mouse button";;;;
41 elseelseelseelse // // // // botão esquerdo do mousebotão esquerdo do mousebotão esquerdo do mousebotão esquerdo do mouse
42 details += details += details += details += " with left mouse button"" with left mouse button"" with left mouse button"" with left mouse button";;;;
43 44 statusBar.setText( details ); statusBar.setText( details ); statusBar.setText( details ); statusBar.setText( details ); // // // // exibe mensagemexibe mensagemexibe mensagemexibe mensagem na na na na statusBarstatusBarstatusBarstatusBar
45 } } } } // // // // fim do método fim do método fim do método fim do método mmmmouseClickedouseClickedouseClickedouseClicked
46 } } } } // // // // fim da classe interna private MouseClickHandlerfim da classe interna private MouseClickHandlerfim da classe interna private MouseClickHandlerfim da classe interna private MouseClickHandler
47 } } } } // // // // fim da classe fim da classe fim da classe fim da classe MouseDetailsFrameMouseDetailsFrameMouseDetailsFrameMouseDetailsFrame
Obtém o número de vezes que o botão do
mouse foi clicado
Testa se o botão direito do mouse foi clicado
Testa se o botão do meio do mouse foi clicado
Introdução à Tecnologia Java – 02/2012
Exemplo 1 // Fig. 11.32: MouseDetails.java// Fig. 11.32: MouseDetails.java// Fig. 11.32: MouseDetails.java// Fig. 11.32: MouseDetails.java
2 // Test// Test// Test// Testandoandoandoando MouseDetailsFrame. MouseDetailsFrame. MouseDetailsFrame. MouseDetailsFrame.
3 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
4
5 publicpublicpublicpublic classclassclassclass MouseDetails MouseDetails MouseDetails MouseDetails
6 {{{{
7 publicpublicpublicpublic staticstaticstaticstatic voidvoidvoidvoid main( String args[] ) main( String args[] ) main( String args[] ) main( String args[] )
8 { { { {
9 MouseDetailsFrame mouseDetailsFrame = MouseDetailsFrame mouseDetailsFrame = MouseDetailsFrame mouseDetailsFrame = MouseDetailsFrame mouseDetailsFrame = newnewnewnew Mou Mou Mou MouseDetailsFrame(); seDetailsFrame(); seDetailsFrame(); seDetailsFrame();
10 mouseDetailsFrame.setDefaultCloseOperation( mouseDetailsFrame.setDefaultCloseOperation( mouseDetailsFrame.setDefaultCloseOperation( mouseDetailsFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSE ); ); ); );
Celso Olivete Júnior 178
10 mouseDetailsFrame.setDefaultCloseOperation( mouseDetailsFrame.setDefaultCloseOperation( mouseDetailsFrame.setDefaultCloseOperation( mouseDetailsFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSE ); ); ); );
11 mouseDetailsFrame.setSize( mouseDetailsFrame.setSize( mouseDetailsFrame.setSize( mouseDetailsFrame.setSize( 400400400400, , , , 150150150150 ); ); ); ); // // // // configura o tamanho doconfigura o tamanho doconfigura o tamanho doconfigura o tamanho do frame frame frame frame
12 mouseDetailsFrame.setVisible( mouseDetailsFrame.setVisible( mouseDetailsFrame.setVisible( mouseDetailsFrame.setVisible( truetruetruetrue ); ); ); ); // // // // obtémobtémobtémobtém o o o o frameframeframeframe
13 } } } } // // // // fim de fim de fim de fim de mainmainmainmain
14 } } } } // // // // fim da classefim da classefim da classefim da classe MouseDetails MouseDetails MouseDetails MouseDetails
Introdução à Tecnologia Java – 02/2012
Exemplo
Celso Olivete Júnior 179
Introdução à Tecnologia Java – 02/2012
Subclasse JPanel para desenhar com o mouse
• Sobrescrevendo a classe JPanel:
• Fornece uma área dedicada de desenho.
Celso Olivete Júnior 180
Introdução à Tecnologia Java – 02/2012
Eventos do Mouse
Método InputEventInputEventInputEventInputEvent Descrição
isMetaDown()isMetaDown()isMetaDown()isMetaDown() Retorna truetruetruetrue quando o usuário clica no botão direito do
Os métodos InputEvent que ajudam a distinguir entre os cliques
do botão esquerdo, do centro e direito do mouse.
Celso Olivete Júnior 181
Retorna truetruetruetrue quando o usuário clica no botão direito do mouse em um mouse com dois ou três botões. Para simular um clique de botão direito com um mouse de um botão, o usuário pode manter pressionada a tecla Meta no teclado e clicar no botão do mouse.
isAltDown()isAltDown()isAltDown()isAltDown() Retorna truetruetruetrue quando o usuário clica no botão do mouse do meio em um mouse com três botões. Para simular um clique com o botão do meio do mouse em um mouse com um ou dois botões, o usuário pode pressionar a tecla Alt no teclado e clicar no único botão ou no botão esquerdo do mouse.
Introdução à Tecnologia Java – 02/2012
Método paintComponent
•Desenha em um componente Swing.
•A sobrescrição de método permite criar
desenhos personalizados.desenhos personalizados.
•Deve primeiro chamar o método de
superclasse quando sobrescrito.
Celso Olivete Júnior 182
Introdução à Tecnologia Java – 02/2012
Observação sobre aparência e comportamento
• A maioria dos componentes Swing GUI pode
ser transparente ou opaca. Se um componente
Swing GUI for opaco, seu fundo será limpo
quando seu método paintComponent for
chamado. Somente componentes opacos podem
exibir uma cor de segundo plano personalizada.
Os objetos JPanel são opacos por padrão.
Celso Olivete Júnior 183
Introdução à Tecnologia Java – 02/2012
Dica
•No método paintComponent de uma
subclasse JComponent, a primeira instrução
deve ser sempre uma chamada para o métododeve ser sempre uma chamada para o método
da superclasse paintComponent a fim de
assegurar que um objeto da subclasse seja
exibido corretamente.
Celso Olivete Júnior 184
Introdução à Tecnologia Java – 02/2012
Definindo a área personalizada de desenho
• Subclasse personalizada de JPanel:
•Oferece uma área de desenho personalizada.
•A classe Graphics é utilizada para desenhar nos•A classe Graphics é utilizada para desenhar nos
componente Swing.
•A classe Point representa uma coordenada x-y.
Celso Olivete Júnior 185
Introdução à Tecnologia Java – 02/2012
Exemplo
1 // Fig. 11.34: PaintPanel.java// Fig. 11.34: PaintPanel.java// Fig. 11.34: PaintPanel.java// Fig. 11.34: PaintPanel.java
2 // // // // UtilizandoUtilizandoUtilizandoUtilizando class MouseMotionAdapter. class MouseMotionAdapter. class MouseMotionAdapter. class MouseMotionAdapter.
3 importimportimportimport java.awt.Point; java.awt.Point; java.awt.Point; java.awt.Point;
4 importimportimportimport java.awt.Graphics; java.awt.Graphics; java.awt.Graphics; java.awt.Graphics;
5 importimportimportimport java.awt.event.MouseEvent; java.awt.event.MouseEvent; java.awt.event.MouseEvent; java.awt.event.MouseEvent;
6 importimportimportimport java.awt.event.MouseMotionAdapter; java.awt.event.MouseMotionAdapter; java.awt.event.MouseMotionAdapter; java.awt.event.MouseMotionAdapter;
7 importimportimportimport javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel;
8
9 publicpublicpublicpublic classclassclassclass PaintPanel PaintPanel PaintPanel PaintPanel extendsextendsextendsextends JPanel JPanel JPanel JPanel
Celso Olivete Júnior 186
9 publicpublicpublicpublic classclassclassclass PaintPanel PaintPanel PaintPanel PaintPanel extendsextendsextendsextends JPanel JPanel JPanel JPanel
10 {{{{
11 privateprivateprivateprivate intintintint pointCount = pointCount = pointCount = pointCount = 0000; ; ; ; // // // // número de contagem de pontosnúmero de contagem de pontosnúmero de contagem de pontosnúmero de contagem de pontos
12
13 // // // // array de 10000 referências java.awt.Pointarray de 10000 referências java.awt.Pointarray de 10000 referências java.awt.Pointarray de 10000 referências java.awt.Point
14 privateprivateprivateprivate Point points[] = Point points[] = Point points[] = Point points[] = newnewnewnew Point[ Point[ Point[ Point[ 10000100001000010000 ]; ]; ]; ];
15
16 // // // // configuraconfiguraconfiguraconfigura a GUI e registra handler de evento de mouse a GUI e registra handler de evento de mouse a GUI e registra handler de evento de mouse a GUI e registra handler de evento de mouse
17 publicpublicpublicpublic PaintPanel() PaintPanel() PaintPanel() PaintPanel()
18 { { { {
19 // // // // trata evento de movimento de mouse do frametrata evento de movimento de mouse do frametrata evento de movimento de mouse do frametrata evento de movimento de mouse do frame
20 addMouseMotionListener( addMouseMotionListener( addMouseMotionListener( addMouseMotionListener(
21
Introdução à Tecnologia Java – 02/2012
Exemplo
1 // Fig. 11.34: PaintPanel.java// Fig. 11.34: PaintPanel.java// Fig. 11.34: PaintPanel.java// Fig. 11.34: PaintPanel.java
2 // // // // UtilizandoUtilizandoUtilizandoUtilizando class MouseMotionAdapter. class MouseMotionAdapter. class MouseMotionAdapter. class MouseMotionAdapter.
3 importimportimportimport java.awt.Point; java.awt.Point; java.awt.Point; java.awt.Point;
4 importimportimportimport java.awt.Graphics; java.awt.Graphics; java.awt.Graphics; java.awt.Graphics;
5 importimportimportimport java.awt.event.MouseEvent; java.awt.event.MouseEvent; java.awt.event.MouseEvent; java.awt.event.MouseEvent;
6 importimportimportimport java.awt.event.MouseMotionAdapter; java.awt.event.MouseMotionAdapter; java.awt.event.MouseMotionAdapter; java.awt.event.MouseMotionAdapter;
7 importimportimportimport javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel;
8
9 publicpublicpublicpublic classclassclassclass PaintPanel PaintPanel PaintPanel PaintPanel extendsextendsextendsextends JPanel JPanel JPanel JPanel
Celso Olivete Júnior 187
9 publicpublicpublicpublic classclassclassclass PaintPanel PaintPanel PaintPanel PaintPanel extendsextendsextendsextends JPanel JPanel JPanel JPanel
10 {{{{
11 privateprivateprivateprivate intintintint pointCount = pointCount = pointCount = pointCount = 0000; ; ; ; // // // // número de contagem de pontosnúmero de contagem de pontosnúmero de contagem de pontosnúmero de contagem de pontos
12
13 // // // // array de 10000 referências java.awt.Pointarray de 10000 referências java.awt.Pointarray de 10000 referências java.awt.Pointarray de 10000 referências java.awt.Point
14 privateprivateprivateprivate Point points[] = Point points[] = Point points[] = Point points[] = newnewnewnew Point[ Point[ Point[ Point[ 10000100001000010000 ]; ]; ]; ];
15
16 // // // // configuraconfiguraconfiguraconfigura a GUI e registra handler de evento de mouse a GUI e registra handler de evento de mouse a GUI e registra handler de evento de mouse a GUI e registra handler de evento de mouse
17 publicpublicpublicpublic PaintPanel() PaintPanel() PaintPanel() PaintPanel()
18 { { { {
19 // // // // trata evento de movimento de mouse do frametrata evento de movimento de mouse do frametrata evento de movimento de mouse do frametrata evento de movimento de mouse do frame
20 addMouseMotionListener( addMouseMotionListener( addMouseMotionListener( addMouseMotionListener(
21
Cria array de Points
Introdução à Tecnologia Java – 02/2012
Exemplo22 newnewnewnew MouseMotionAdapter() MouseMotionAdapter() MouseMotionAdapter() MouseMotionAdapter() // // // // classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
23 { { { {
24 // // // // armazena coordenadas de arrastar e repintaarmazena coordenadas de arrastar e repintaarmazena coordenadas de arrastar e repintaarmazena coordenadas de arrastar e repinta
25 publicpublicpublicpublic voidvoidvoidvoid mouseDragged( MouseEvent event ) mouseDragged( MouseEvent event ) mouseDragged( MouseEvent event ) mouseDragged( MouseEvent event )
26 {{{{
27 ifififif ( pointCount < points.length ) ( pointCount < points.length ) ( pointCount < points.length ) ( pointCount < points.length )
28 {{{{
29 points[ pointCountpoints[ pointCountpoints[ pointCountpoints[ pointCount ] = event.getPoint(); ] = event.getPoint(); ] = event.getPoint(); ] = event.getPoint(); // // // // llllocalizaocalizaocalizaocaliza po po po ponnnntotototo
30 pointCount++; pointCount++; pointCount++; pointCount++; // // // // nnnnúmero de iúmero de iúmero de iúmero de increment ncrement ncrement ncrement dddde e e e popopoponnnntostostostos nnnnoooo array array array array
31 repaint(); repaint(); repaint(); repaint(); // rep// rep// rep// repiiiintantantanta JFrame JFrame JFrame JFrame
32 } } } } // // // // ffffim de im de im de im de ifififif
Celso Olivete Júnior 188
32 } } } } // // // // ffffim de im de im de im de ifififif
33 }}}} // // // // ffffim do mim do mim do mim do métodoétodoétodoétodo mouseDragged mouseDragged mouseDragged mouseDragged
34 } } } } // // // // ffffim da classe interna anim da classe interna anim da classe interna anim da classe interna anônimaônimaônimaônima
35 ); ); ); ); // // // // ffffim da chamada para im da chamada para im da chamada para im da chamada para addMouseMotionListeneraddMouseMotionListeneraddMouseMotionListeneraddMouseMotionListener
36 } } } } // // // // ffffim do construtor im do construtor im do construtor im do construtor PaintPanelPaintPanelPaintPanelPaintPanel
37
38 // // // // desenha oval em um quadro delimitador de 4x4 no local especificaddesenha oval em um quadro delimitador de 4x4 no local especificaddesenha oval em um quadro delimitador de 4x4 no local especificaddesenha oval em um quadro delimitador de 4x4 no local especificadoooo na janela na janela na janela na janela
39 publicpublicpublicpublic voidvoidvoidvoid paintComponent( Graphics g ) paintComponent( Graphics g ) paintComponent( Graphics g ) paintComponent( Graphics g )
40 { { { {
41 supersupersupersuper.paintComponent( g ); .paintComponent( g ); .paintComponent( g ); .paintComponent( g ); // // // // limpa a área de desenholimpa a área de desenholimpa a área de desenholimpa a área de desenho
42
43 // // // // desenha todos os pontos no arraydesenha todos os pontos no arraydesenha todos os pontos no arraydesenha todos os pontos no array
44 forforforfor ( ( ( ( intintintint i = i = i = i = 0000; i < pointCount; i++ ); i < pointCount; i++ ); i < pointCount; i++ ); i < pointCount; i++ )
45 g.fillOval( g.fillOval( g.fillOval( g.fillOval( points[ i ].x, points[ i ].ypoints[ i ].x, points[ i ].ypoints[ i ].x, points[ i ].ypoints[ i ].x, points[ i ].y, , , , 4444, , , , 4444 ); ); ); );
46 } } } } // // // // ffffim do mim do mim do mim do métodoétodoétodoétodo paintComponent paintComponent paintComponent paintComponent
47 } } } } // // // // ffffim da classeim da classeim da classeim da classe PaintPanel PaintPanel PaintPanel PaintPanel
Introdução à Tecnologia Java – 02/2012
Exemplo22 newnewnewnew MouseMotionAdapter() MouseMotionAdapter() MouseMotionAdapter() MouseMotionAdapter() // // // // classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
23 { { { {
24 // // // // armazena coordenadas de arrastar e repintaarmazena coordenadas de arrastar e repintaarmazena coordenadas de arrastar e repintaarmazena coordenadas de arrastar e repinta
25 publicpublicpublicpublic voidvoidvoidvoid mouseDragged( MouseEvent event ) mouseDragged( MouseEvent event ) mouseDragged( MouseEvent event ) mouseDragged( MouseEvent event )
26 {{{{
27 ifififif ( pointCount < points.length ) ( pointCount < points.length ) ( pointCount < points.length ) ( pointCount < points.length )
28 {{{{
29 points[ pointCountpoints[ pointCountpoints[ pointCountpoints[ pointCount ] = event.getPoint(); ] = event.getPoint(); ] = event.getPoint(); ] = event.getPoint(); // // // // llllocalizaocalizaocalizaocaliza po po po ponnnntotototo
30 pointCount++; pointCount++; pointCount++; pointCount++; // // // // nnnnúmero de iúmero de iúmero de iúmero de increment ncrement ncrement ncrement dddde e e e popopoponnnntostostostos nnnnoooo array array array array
31 repaint(); repaint(); repaint(); repaint(); // rep// rep// rep// repiiiintantantanta JFrame JFrame JFrame JFrame
32 } } } } // // // // ffffim de im de im de im de ifififif
Classe interna anônima para tratamento de
evento
Celso Olivete Júnior 189
32 } } } } // // // // ffffim de im de im de im de ifififif
33 }}}} // // // // ffffim do mim do mim do mim do métodoétodoétodoétodo mouseDragged mouseDragged mouseDragged mouseDragged
34 } } } } // // // // ffffim da classe interna anim da classe interna anim da classe interna anim da classe interna anônimaônimaônimaônima
35 ); ); ); ); // // // // ffffim da chamada para im da chamada para im da chamada para im da chamada para addMouseMotionListeneraddMouseMotionListeneraddMouseMotionListeneraddMouseMotionListener
36 } } } } // // // // ffffim do construtor im do construtor im do construtor im do construtor PaintPanelPaintPanelPaintPanelPaintPanel
37
38 // // // // desenha oval em um quadro delimitador de 4x4 no local especificaddesenha oval em um quadro delimitador de 4x4 no local especificaddesenha oval em um quadro delimitador de 4x4 no local especificaddesenha oval em um quadro delimitador de 4x4 no local especificadoooo na janela na janela na janela na janela
39 publicpublicpublicpublic voidvoidvoidvoid paintComponent( Graphics g ) paintComponent( Graphics g ) paintComponent( Graphics g ) paintComponent( Graphics g )
40 { { { {
41 supersupersupersuper.paintComponent( g ); .paintComponent( g ); .paintComponent( g ); .paintComponent( g ); // // // // limpa a área de desenholimpa a área de desenholimpa a área de desenholimpa a área de desenho
42
43 // // // // desenha todos os pontos no arraydesenha todos os pontos no arraydesenha todos os pontos no arraydesenha todos os pontos no array
44 forforforfor ( ( ( ( intintintint i = i = i = i = 0000; i < pointCount; i++ ); i < pointCount; i++ ); i < pointCount; i++ ); i < pointCount; i++ )
45 g.fillOval( g.fillOval( g.fillOval( g.fillOval( points[ i ].x, points[ i ].ypoints[ i ].x, points[ i ].ypoints[ i ].x, points[ i ].ypoints[ i ].x, points[ i ].y, , , , 4444, , , , 4444 ); ); ); );
46 } } } } // // // // ffffim do mim do mim do mim do métodoétodoétodoétodo paintComponent paintComponent paintComponent paintComponent
47 } } } } // // // // ffffim da classeim da classeim da classeim da classe PaintPanel PaintPanel PaintPanel PaintPanel
Introdução à Tecnologia Java – 02/2012
Exemplo22 newnewnewnew MouseMotionAdapter() MouseMotionAdapter() MouseMotionAdapter() MouseMotionAdapter() // // // // classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
23 { { { {
24 // // // // armazena coordenadas de arrastar e repintaarmazena coordenadas de arrastar e repintaarmazena coordenadas de arrastar e repintaarmazena coordenadas de arrastar e repinta
25 publicpublicpublicpublic voidvoidvoidvoid mouseDragged( MouseEvent event ) mouseDragged( MouseEvent event ) mouseDragged( MouseEvent event ) mouseDragged( MouseEvent event )
26 {{{{
27 ifififif ( pointCount < points.length ) ( pointCount < points.length ) ( pointCount < points.length ) ( pointCount < points.length )
28 {{{{
29 points[ pointCountpoints[ pointCountpoints[ pointCountpoints[ pointCount ] = event.getPoint(); ] = event.getPoint(); ] = event.getPoint(); ] = event.getPoint(); // // // // llllocalizaocalizaocalizaocaliza po po po ponnnntotototo
30 pointCount++; pointCount++; pointCount++; pointCount++; // // // // nnnnúmero de iúmero de iúmero de iúmero de increment ncrement ncrement ncrement dddde e e e popopoponnnntostostostos nnnnoooo array array array array
31 repaint(); repaint(); repaint(); repaint(); // rep// rep// rep// repiiiintantantanta JFrame JFrame JFrame JFrame
32 } } } } // // // // ffffim de im de im de im de ifififif
Classe interna anônima para tratamento de
evento
Sobrescreve o método mouseDragged
Celso Olivete Júnior 190
32 } } } } // // // // ffffim de im de im de im de ifififif
33 }}}} // // // // ffffim do mim do mim do mim do métodoétodoétodoétodo mouseDragged mouseDragged mouseDragged mouseDragged
34 } } } } // // // // ffffim da classe interna anim da classe interna anim da classe interna anim da classe interna anônimaônimaônimaônima
35 ); ); ); ); // // // // ffffim da chamada para im da chamada para im da chamada para im da chamada para addMouseMotionListeneraddMouseMotionListeneraddMouseMotionListeneraddMouseMotionListener
36 } } } } // // // // ffffim do construtor im do construtor im do construtor im do construtor PaintPanelPaintPanelPaintPanelPaintPanel
37
38 // // // // desenha oval em um quadro delimitador de 4x4 no local especificaddesenha oval em um quadro delimitador de 4x4 no local especificaddesenha oval em um quadro delimitador de 4x4 no local especificaddesenha oval em um quadro delimitador de 4x4 no local especificadoooo na janela na janela na janela na janela
39 publicpublicpublicpublic voidvoidvoidvoid paintComponent( Graphics g ) paintComponent( Graphics g ) paintComponent( Graphics g ) paintComponent( Graphics g )
40 { { { {
41 supersupersupersuper.paintComponent( g ); .paintComponent( g ); .paintComponent( g ); .paintComponent( g ); // // // // limpa a área de desenholimpa a área de desenholimpa a área de desenholimpa a área de desenho
42
43 // // // // desenha todos os pontos no arraydesenha todos os pontos no arraydesenha todos os pontos no arraydesenha todos os pontos no array
44 forforforfor ( ( ( ( intintintint i = i = i = i = 0000; i < pointCount; i++ ); i < pointCount; i++ ); i < pointCount; i++ ); i < pointCount; i++ )
45 g.fillOval( g.fillOval( g.fillOval( g.fillOval( points[ i ].x, points[ i ].ypoints[ i ].x, points[ i ].ypoints[ i ].x, points[ i ].ypoints[ i ].x, points[ i ].y, , , , 4444, , , , 4444 ); ); ); );
46 } } } } // // // // ffffim do mim do mim do mim do métodoétodoétodoétodo paintComponent paintComponent paintComponent paintComponent
47 } } } } // // // // ffffim da classeim da classeim da classeim da classe PaintPanel PaintPanel PaintPanel PaintPanel
Introdução à Tecnologia Java – 02/2012
Exemplo22 newnewnewnew MouseMotionAdapter() MouseMotionAdapter() MouseMotionAdapter() MouseMotionAdapter() // // // // classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
23 { { { {
24 // // // // armazena coordenadas de arrastar e repintaarmazena coordenadas de arrastar e repintaarmazena coordenadas de arrastar e repintaarmazena coordenadas de arrastar e repinta
25 publicpublicpublicpublic voidvoidvoidvoid mouseDragged( MouseEvent event ) mouseDragged( MouseEvent event ) mouseDragged( MouseEvent event ) mouseDragged( MouseEvent event )
26 {{{{
27 ifififif ( pointCount < points.length ) ( pointCount < points.length ) ( pointCount < points.length ) ( pointCount < points.length )
28 {{{{
29 points[ pointCountpoints[ pointCountpoints[ pointCountpoints[ pointCount ] = event.getPoint(); ] = event.getPoint(); ] = event.getPoint(); ] = event.getPoint(); // // // // llllocalizaocalizaocalizaocaliza po po po ponnnntotototo
30 pointCount++; pointCount++; pointCount++; pointCount++; // // // // nnnnúmero de iúmero de iúmero de iúmero de increment ncrement ncrement ncrement dddde e e e popopoponnnntostostostos nnnnoooo array array array array
31 repaint(); repaint(); repaint(); repaint(); // rep// rep// rep// repiiiintantantanta JFrame JFrame JFrame JFrame
32 } } } } // // // // ffffim de im de im de im de ifififif
Classe interna anônima para tratamento de
evento
Sobrescreve o método mouseDragged
Obtém a localização do cursor do mouse
Celso Olivete Júnior 191
32 } } } } // // // // ffffim de im de im de im de ifififif
33 }}}} // // // // ffffim do mim do mim do mim do métodoétodoétodoétodo mouseDragged mouseDragged mouseDragged mouseDragged
34 } } } } // // // // ffffim da classe interna anim da classe interna anim da classe interna anim da classe interna anônimaônimaônimaônima
35 ); ); ); ); // // // // ffffim da chamada para im da chamada para im da chamada para im da chamada para addMouseMotionListeneraddMouseMotionListeneraddMouseMotionListeneraddMouseMotionListener
36 } } } } // // // // ffffim do construtor im do construtor im do construtor im do construtor PaintPanelPaintPanelPaintPanelPaintPanel
37
38 // // // // desenha oval em um quadro delimitador de 4x4 no local especificaddesenha oval em um quadro delimitador de 4x4 no local especificaddesenha oval em um quadro delimitador de 4x4 no local especificaddesenha oval em um quadro delimitador de 4x4 no local especificadoooo na janela na janela na janela na janela
39 publicpublicpublicpublic voidvoidvoidvoid paintComponent( Graphics g ) paintComponent( Graphics g ) paintComponent( Graphics g ) paintComponent( Graphics g )
40 { { { {
41 supersupersupersuper.paintComponent( g ); .paintComponent( g ); .paintComponent( g ); .paintComponent( g ); // // // // limpa a área de desenholimpa a área de desenholimpa a área de desenholimpa a área de desenho
42
43 // // // // desenha todos os pontos no arraydesenha todos os pontos no arraydesenha todos os pontos no arraydesenha todos os pontos no array
44 forforforfor ( ( ( ( intintintint i = i = i = i = 0000; i < pointCount; i++ ); i < pointCount; i++ ); i < pointCount; i++ ); i < pointCount; i++ )
45 g.fillOval( g.fillOval( g.fillOval( g.fillOval( points[ i ].x, points[ i ].ypoints[ i ].x, points[ i ].ypoints[ i ].x, points[ i ].ypoints[ i ].x, points[ i ].y, , , , 4444, , , , 4444 ); ); ); );
46 } } } } // // // // ffffim do mim do mim do mim do métodoétodoétodoétodo paintComponent paintComponent paintComponent paintComponent
47 } } } } // // // // ffffim da classeim da classeim da classeim da classe PaintPanel PaintPanel PaintPanel PaintPanel
Introdução à Tecnologia Java – 02/2012
Exemplo22 newnewnewnew MouseMotionAdapter() MouseMotionAdapter() MouseMotionAdapter() MouseMotionAdapter() // // // // classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
23 { { { {
24 // // // // armazena coordenadas de arrastar e repintaarmazena coordenadas de arrastar e repintaarmazena coordenadas de arrastar e repintaarmazena coordenadas de arrastar e repinta
25 publicpublicpublicpublic voidvoidvoidvoid mouseDragged( MouseEvent event ) mouseDragged( MouseEvent event ) mouseDragged( MouseEvent event ) mouseDragged( MouseEvent event )
26 {{{{
27 ifififif ( pointCount < points.length ) ( pointCount < points.length ) ( pointCount < points.length ) ( pointCount < points.length )
28 {{{{
29 points[ pointCountpoints[ pointCountpoints[ pointCountpoints[ pointCount ] = event.getPoint(); ] = event.getPoint(); ] = event.getPoint(); ] = event.getPoint(); // // // // llllocalizaocalizaocalizaocaliza po po po ponnnntotototo
30 pointCount++; pointCount++; pointCount++; pointCount++; // // // // nnnnúmero de iúmero de iúmero de iúmero de increment ncrement ncrement ncrement dddde e e e popopoponnnntostostostos nnnnoooo array array array array
31 repaint(); repaint(); repaint(); repaint(); // rep// rep// rep// repiiiintantantanta JFrame JFrame JFrame JFrame
32 } } } } // // // // ffffim de im de im de im de ifififif
Classe interna anônima para tratamento de
evento
Sobrescreve o método mouseDragged
Obtém a localização do cursor do mouse
Celso Olivete Júnior 192
32 } } } } // // // // ffffim de im de im de im de ifififif
33 }}}} // // // // ffffim do mim do mim do mim do métodoétodoétodoétodo mouseDragged mouseDragged mouseDragged mouseDragged
34 } } } } // // // // ffffim da classe interna anim da classe interna anim da classe interna anim da classe interna anônimaônimaônimaônima
35 ); ); ); ); // // // // ffffim da chamada para im da chamada para im da chamada para im da chamada para addMouseMotionListeneraddMouseMotionListeneraddMouseMotionListeneraddMouseMotionListener
36 } } } } // // // // ffffim do construtor im do construtor im do construtor im do construtor PaintPanelPaintPanelPaintPanelPaintPanel
37
38 // // // // desenha oval em um quadro delimitador de 4x4 no local especificaddesenha oval em um quadro delimitador de 4x4 no local especificaddesenha oval em um quadro delimitador de 4x4 no local especificaddesenha oval em um quadro delimitador de 4x4 no local especificadoooo na janela na janela na janela na janela
39 publicpublicpublicpublic voidvoidvoidvoid paintComponent( Graphics g ) paintComponent( Graphics g ) paintComponent( Graphics g ) paintComponent( Graphics g )
40 { { { {
41 supersupersupersuper.paintComponent( g ); .paintComponent( g ); .paintComponent( g ); .paintComponent( g ); // // // // limpa a área de desenholimpa a área de desenholimpa a área de desenholimpa a área de desenho
42
43 // // // // desenha todos os pontos no arraydesenha todos os pontos no arraydesenha todos os pontos no arraydesenha todos os pontos no array
44 forforforfor ( ( ( ( intintintint i = i = i = i = 0000; i < pointCount; i++ ); i < pointCount; i++ ); i < pointCount; i++ ); i < pointCount; i++ )
45 g.fillOval( g.fillOval( g.fillOval( g.fillOval( points[ i ].x, points[ i ].ypoints[ i ].x, points[ i ].ypoints[ i ].x, points[ i ].ypoints[ i ].x, points[ i ].y, , , , 4444, , , , 4444 ); ); ); );
46 } } } } // // // // ffffim do mim do mim do mim do métodoétodoétodoétodo paintComponent paintComponent paintComponent paintComponent
47 } } } } // // // // ffffim da classeim da classeim da classeim da classe PaintPanel PaintPanel PaintPanel PaintPanel
Repinta o JFrame
Introdução à Tecnologia Java – 02/2012
Exemplo22 newnewnewnew MouseMotionAdapter() MouseMotionAdapter() MouseMotionAdapter() MouseMotionAdapter() // // // // classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
23 { { { {
24 // // // // armazena coordenadas de arrastar e repintaarmazena coordenadas de arrastar e repintaarmazena coordenadas de arrastar e repintaarmazena coordenadas de arrastar e repinta
25 publicpublicpublicpublic voidvoidvoidvoid mouseDragged( MouseEvent event ) mouseDragged( MouseEvent event ) mouseDragged( MouseEvent event ) mouseDragged( MouseEvent event )
26 {{{{
27 ifififif ( pointCount < points.length ) ( pointCount < points.length ) ( pointCount < points.length ) ( pointCount < points.length )
28 {{{{
29 points[ pointCountpoints[ pointCountpoints[ pointCountpoints[ pointCount ] = event.getPoint(); ] = event.getPoint(); ] = event.getPoint(); ] = event.getPoint(); // // // // llllocalizaocalizaocalizaocaliza po po po ponnnntotototo
30 pointCount++; pointCount++; pointCount++; pointCount++; // // // // nnnnúmero de iúmero de iúmero de iúmero de increment ncrement ncrement ncrement dddde e e e popopoponnnntostostostos nnnnoooo array array array array
31 repaint(); repaint(); repaint(); repaint(); // rep// rep// rep// repiiiintantantanta JFrame JFrame JFrame JFrame
32 } } } } // // // // ffffim de im de im de im de ifififif
Classe interna anônima para tratamento de
evento
Sobrescreve o método mouseDragged
Obtém a localização do cursor do mouse
Celso Olivete Júnior 193
32 } } } } // // // // ffffim de im de im de im de ifififif
33 }}}} // // // // ffffim do mim do mim do mim do métodoétodoétodoétodo mouseDragged mouseDragged mouseDragged mouseDragged
34 } } } } // // // // ffffim da classe interna anim da classe interna anim da classe interna anim da classe interna anônimaônimaônimaônima
35 ); ); ); ); // // // // ffffim da chamada para im da chamada para im da chamada para im da chamada para addMouseMotionListeneraddMouseMotionListeneraddMouseMotionListeneraddMouseMotionListener
36 } } } } // // // // ffffim do construtor im do construtor im do construtor im do construtor PaintPanelPaintPanelPaintPanelPaintPanel
37
38 // // // // desenha oval em um quadro delimitador de 4x4 no local especificaddesenha oval em um quadro delimitador de 4x4 no local especificaddesenha oval em um quadro delimitador de 4x4 no local especificaddesenha oval em um quadro delimitador de 4x4 no local especificadoooo na janela na janela na janela na janela
39 publicpublicpublicpublic voidvoidvoidvoid paintComponent( Graphics g ) paintComponent( Graphics g ) paintComponent( Graphics g ) paintComponent( Graphics g )
40 { { { {
41 supersupersupersuper.paintComponent( g ); .paintComponent( g ); .paintComponent( g ); .paintComponent( g ); // // // // limpa a área de desenholimpa a área de desenholimpa a área de desenholimpa a área de desenho
42
43 // // // // desenha todos os pontos no arraydesenha todos os pontos no arraydesenha todos os pontos no arraydesenha todos os pontos no array
44 forforforfor ( ( ( ( intintintint i = i = i = i = 0000; i < pointCount; i++ ); i < pointCount; i++ ); i < pointCount; i++ ); i < pointCount; i++ )
45 g.fillOval( g.fillOval( g.fillOval( g.fillOval( points[ i ].x, points[ i ].ypoints[ i ].x, points[ i ].ypoints[ i ].x, points[ i ].ypoints[ i ].x, points[ i ].y, , , , 4444, , , , 4444 ); ); ); );
46 } } } } // // // // ffffim do mim do mim do mim do métodoétodoétodoétodo paintComponent paintComponent paintComponent paintComponent
47 } } } } // // // // ffffim da classeim da classeim da classeim da classe PaintPanel PaintPanel PaintPanel PaintPanel
Repinta o JFrame
Obtém as coordenadas x e y de Point
Introdução à Tecnologia Java – 02/2012
Observação sobre aparência e comportamento
• Chamar repaint para um componente SwingGUI indica que o componente deve seratualizado na tela o mais rápido possível. Ofundo do componente GUI é limpo somente se ofundo do componente GUI é limpo somente se ocomponente for opaco. Para o métodoJComponent setOpaque pode ser passado umargumento boolean indicando se o componente éopaco (true) ou transparente (false).
Celso Olivete Júnior 194
Introdução à Tecnologia Java – 02/2012
Exemplo 1 // Fig. 11.35: Painter.java// Fig. 11.35: Painter.java// Fig. 11.35: Painter.java// Fig. 11.35: Painter.java
2 // Test// Test// Test// Testandoandoandoando PaintPanel. PaintPanel. PaintPanel. PaintPanel.
3 importimportimportimport java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout;
4 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
5 importimportimportimport javax.swing.JLabel; javax.swing.JLabel; javax.swing.JLabel; javax.swing.JLabel;
6
7 publicpublicpublicpublic classclassclassclass Painter Painter Painter Painter
8 {{{{
9 public static voidpublic static voidpublic static voidpublic static void main( String args[] ) main( String args[] ) main( String args[] ) main( String args[] )
10 { { { {
Celso Olivete Júnior 195
10 { { { {
11 // cr // cr // cr // criaiaiaia JFrame JFrame JFrame JFrame
12 JFrame application = JFrame application = JFrame application = JFrame application = newnewnewnew JFrame( JFrame( JFrame( JFrame( "A simple paint program""A simple paint program""A simple paint program""A simple paint program" ); ); ); );
13
14 PaintPanel paintPanel = PaintPanel paintPanel = PaintPanel paintPanel = PaintPanel paintPanel = newnewnewnew PaintPanel(); PaintPanel(); PaintPanel(); PaintPanel(); // // // // cria o painel de pinturacria o painel de pinturacria o painel de pinturacria o painel de pintura
15 application.add( paintPanel, application.add( paintPanel, application.add( paintPanel, application.add( paintPanel, BorderLayout.CENTERBorderLayout.CENTERBorderLayout.CENTERBorderLayout.CENTER ); ); ); ); // // // // nononono cent cent cent centrorororo
16
17 // cr // cr // cr // criaiaiaia um rótulo e o coloca um rótulo e o coloca um rótulo e o coloca um rótulo e o coloca emememem SOUTH SOUTH SOUTH SOUTH dededede BorderLayout BorderLayout BorderLayout BorderLayout
18 application.add( application.add( application.add( application.add( newnewnewnew JLabel( JLabel( JLabel( JLabel( "Drag the mouse to draw" "Drag the mouse to draw" "Drag the mouse to draw" "Drag the mouse to draw" ), ), ), ),
19 BorderLayout.SOUTHBorderLayout.SOUTHBorderLayout.SOUTHBorderLayout.SOUTH ); ); ); );
20
21 application.setDefaultCloseOperation( application.setDefaultCloseOperation( application.setDefaultCloseOperation( application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSE ); ); ); );
22 application.setSize( application.setSize( application.setSize( application.setSize( 400400400400, , , , 200200200200 ); ); ); ); // // // // configura o tamanho do configura o tamanho do configura o tamanho do configura o tamanho do frameframeframeframe
23 application.setVisible( application.setVisible( application.setVisible( application.setVisible( truetruetruetrue ); ); ); ); // // // // exibe o exibe o exibe o exibe o frameframeframeframe
24 } } } } // // // // fim de fim de fim de fim de mainmainmainmain
25 } } } } // // // // fim da fim da fim da fim da classclassclassclasseeee Painter Painter Painter Painter
Introdução à Tecnologia Java – 02/2012
Exemplo 1 // Fig. 11.35: Painter.java// Fig. 11.35: Painter.java// Fig. 11.35: Painter.java// Fig. 11.35: Painter.java
2 // Test// Test// Test// Testandoandoandoando PaintPanel. PaintPanel. PaintPanel. PaintPanel.
3 importimportimportimport java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout;
4 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
5 importimportimportimport javax.swing.JLabel; javax.swing.JLabel; javax.swing.JLabel; javax.swing.JLabel;
6
7 publicpublicpublicpublic classclassclassclass Painter Painter Painter Painter
8 {{{{
9 public static voidpublic static voidpublic static voidpublic static void main( String args[] ) main( String args[] ) main( String args[] ) main( String args[] )
10 { { { {
Celso Olivete Júnior 196
10 { { { {
11 // cr // cr // cr // criaiaiaia JFrame JFrame JFrame JFrame
12 JFrame application = JFrame application = JFrame application = JFrame application = newnewnewnew JFrame( JFrame( JFrame( JFrame( "A simple paint program""A simple paint program""A simple paint program""A simple paint program" ); ); ); );
13
14 PaintPanel paintPanel = PaintPanel paintPanel = PaintPanel paintPanel = PaintPanel paintPanel = newnewnewnew PaintPanel(); PaintPanel(); PaintPanel(); PaintPanel(); // // // // cria o painel de pinturacria o painel de pinturacria o painel de pinturacria o painel de pintura
15 application.add( paintPanel, application.add( paintPanel, application.add( paintPanel, application.add( paintPanel, BorderLayout.CENTERBorderLayout.CENTERBorderLayout.CENTERBorderLayout.CENTER ); ); ); ); // // // // nononono cent cent cent centrorororo
16
17 // cr // cr // cr // criaiaiaia um rótulo e o coloca um rótulo e o coloca um rótulo e o coloca um rótulo e o coloca emememem SOUTH SOUTH SOUTH SOUTH dededede BorderLayout BorderLayout BorderLayout BorderLayout
18 application.add( application.add( application.add( application.add( newnewnewnew JLabel( JLabel( JLabel( JLabel( "Drag the mouse to draw" "Drag the mouse to draw" "Drag the mouse to draw" "Drag the mouse to draw" ), ), ), ),
19 BorderLayout.SOUTHBorderLayout.SOUTHBorderLayout.SOUTHBorderLayout.SOUTH ); ); ); );
20
21 application.setDefaultCloseOperation( application.setDefaultCloseOperation( application.setDefaultCloseOperation( application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSE ); ); ); );
22 application.setSize( application.setSize( application.setSize( application.setSize( 400400400400, , , , 200200200200 ); ); ); ); // // // // configura o tamanho do configura o tamanho do configura o tamanho do configura o tamanho do frameframeframeframe
23 application.setVisible( application.setVisible( application.setVisible( application.setVisible( truetruetruetrue ); ); ); ); // // // // exibe o exibe o exibe o exibe o frameframeframeframe
24 } } } } // // // // fim de fim de fim de fim de mainmainmainmain
25 } } } } // // // // fim da fim da fim da fim da classclassclassclasseeee Painter Painter Painter Painter
Cria uma instância do painel de
desenho personalizado
Introdução à Tecnologia Java – 02/2012
Exemplo
Celso Olivete Júnior 197
Introdução à Tecnologia Java – 02/2012
Tratamento de eventos de teclado
• Interface KeyListener:
•Para tratar eventos de teclado — KeyEvents.
•Declara os métodos keyPressed, keyReleased e•Declara os métodos keyPressed, keyReleased e
keyTyped, sendo que cada um recebe um
KeyEvent como seu argumento.
Celso Olivete Júnior 198
Introdução à Tecnologia Java – 02/2012
Exemplo 3 importimportimportimport java.awt.Color; java.awt.Color; java.awt.Color; java.awt.Color;
4 importimportimportimport java.awt.event.KeyListener; java.awt.event.KeyListener; java.awt.event.KeyListener; java.awt.event.KeyListener;
5 importimportimportimport java.awt.event.KeyEvent; java.awt.event.KeyEvent; java.awt.event.KeyEvent; java.awt.event.KeyEvent;
6 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
7 importimportimportimport javax.swing.JText javax.swing.JText javax.swing.JText javax.swing.JTextArea;Area;Area;Area;
9 publicpublicpublicpublic classclassclassclass KeyDemoFrame KeyDemoFrame KeyDemoFrame KeyDemoFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame implementsimplementsimplementsimplements KeyListener KeyListener KeyListener KeyListener
10 {{{{
11 privateprivateprivateprivate String line1 = String line1 = String line1 = String line1 = """"""""; ; ; ; // // // // primeira linha de textareaprimeira linha de textareaprimeira linha de textareaprimeira linha de textarea
12 privateprivateprivateprivate String line2 = String line2 = String line2 = String line2 = """"""""; ; ; ; // // // // segundasegundasegundasegunda linha de textarea linha de textarea linha de textarea linha de textarea
13 privateprivateprivateprivate String line3 = String line3 = String line3 = String line3 = """"""""; ; ; ; // // // // teteteterceirarceirarceirarceira linha de textarea linha de textarea linha de textarea linha de textarea
Celso Olivete Júnior 199
13 privateprivateprivateprivate String line3 = String line3 = String line3 = String line3 = """"""""; ; ; ; // // // // teteteterceirarceirarceirarceira linha de textarea linha de textarea linha de textarea linha de textarea
14 privateprivateprivateprivate JTextArea textArea; JTextArea textArea; JTextArea textArea; JTextArea textArea; // textarea // textarea // textarea // textarea a exibir saídaa exibir saídaa exibir saídaa exibir saída
16 // // // // construtor KeyDemoFrameconstrutor KeyDemoFrameconstrutor KeyDemoFrameconstrutor KeyDemoFrame
17 publicpublicpublicpublic KeyDemoFrame() KeyDemoFrame() KeyDemoFrame() KeyDemoFrame()
18 { { { {
19 supersupersupersuper( ( ( ( "Demonstrating Keystroke Events""Demonstrating Keystroke Events""Demonstrating Keystroke Events""Demonstrating Keystroke Events" ); ); ); );
21 textArea = textArea = textArea = textArea = newnewnewnew J J J JTextArea( TextArea( TextArea( TextArea( 10101010, , , , 15151515 ); ); ); ); // // // // configuraconfiguraconfiguraconfigura JTextArea JTextArea JTextArea JTextArea
22 textArea.setText( textArea.setText( textArea.setText( textArea.setText( "Press any key on the keyboard...""Press any key on the keyboard...""Press any key on the keyboard...""Press any key on the keyboard..." ); ); ); );
23 textArea.setEnabled( textArea.setEnabled( textArea.setEnabled( textArea.setEnabled( falsefalsefalsefalse ); ); ); ); // dis// dis// dis// disativa ativa ativa ativa textareatextareatextareatextarea
24 textArea.setDisabledTextColor( textArea.setDisabledTextColor( textArea.setDisabledTextColor( textArea.setDisabledTextColor( Color.BLACKColor.BLACKColor.BLACKColor.BLACK ); ); ); ); // // // // configura cor de textoconfigura cor de textoconfigura cor de textoconfigura cor de texto
25 add( textArea ); add( textArea ); add( textArea ); add( textArea ); // ad// ad// ad// adicionaicionaicionaiciona textarea textarea textarea textarea aoaoaoao JFrame JFrame JFrame JFrame
26
27 addKeyListener( addKeyListener( addKeyListener( addKeyListener( thisthisthisthis ); ); ); ); // // // // permite que o permite que o permite que o permite que o frame processframe processframe processframe processe eventos de tece eventos de tece eventos de tece eventos de tecladoladoladolado
28 } } } } // // // // fim do construtorfim do construtorfim do construtorfim do construtor KeyDemoFrame KeyDemoFrame KeyDemoFrame KeyDemoFrame
Introdução à Tecnologia Java – 02/2012
Exemplo 3 importimportimportimport java.awt.Color; java.awt.Color; java.awt.Color; java.awt.Color;
4 importimportimportimport java.awt.event.KeyListener; java.awt.event.KeyListener; java.awt.event.KeyListener; java.awt.event.KeyListener;
5 importimportimportimport java.awt.event.KeyEvent; java.awt.event.KeyEvent; java.awt.event.KeyEvent; java.awt.event.KeyEvent;
6 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
7 importimportimportimport javax.swing.JText javax.swing.JText javax.swing.JText javax.swing.JTextArea;Area;Area;Area;
9 publicpublicpublicpublic classclassclassclass KeyDemoFrame KeyDemoFrame KeyDemoFrame KeyDemoFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame implementsimplementsimplementsimplements KeyListener KeyListener KeyListener KeyListener
10 {{{{
11 privateprivateprivateprivate String line1 = String line1 = String line1 = String line1 = """"""""; ; ; ; // // // // primeira linha de textareaprimeira linha de textareaprimeira linha de textareaprimeira linha de textarea
12 privateprivateprivateprivate String line2 = String line2 = String line2 = String line2 = """"""""; ; ; ; // // // // segundasegundasegundasegunda linha de textarea linha de textarea linha de textarea linha de textarea
13 privateprivateprivateprivate String line3 = String line3 = String line3 = String line3 = """"""""; ; ; ; // // // // teteteterceirarceirarceirarceira linha de textarea linha de textarea linha de textarea linha de textarea
Implementa a interface KeyListener
Celso Olivete Júnior 200
13 privateprivateprivateprivate String line3 = String line3 = String line3 = String line3 = """"""""; ; ; ; // // // // teteteterceirarceirarceirarceira linha de textarea linha de textarea linha de textarea linha de textarea
14 privateprivateprivateprivate JTextArea textArea; JTextArea textArea; JTextArea textArea; JTextArea textArea; // textarea // textarea // textarea // textarea a exibir saídaa exibir saídaa exibir saídaa exibir saída
16 // // // // construtor KeyDemoFrameconstrutor KeyDemoFrameconstrutor KeyDemoFrameconstrutor KeyDemoFrame
17 publicpublicpublicpublic KeyDemoFrame() KeyDemoFrame() KeyDemoFrame() KeyDemoFrame()
18 { { { {
19 supersupersupersuper( ( ( ( "Demonstrating Keystroke Events""Demonstrating Keystroke Events""Demonstrating Keystroke Events""Demonstrating Keystroke Events" ); ); ); );
21 textArea = textArea = textArea = textArea = newnewnewnew J J J JTextArea( TextArea( TextArea( TextArea( 10101010, , , , 15151515 ); ); ); ); // // // // configuraconfiguraconfiguraconfigura JTextArea JTextArea JTextArea JTextArea
22 textArea.setText( textArea.setText( textArea.setText( textArea.setText( "Press any key on the keyboard...""Press any key on the keyboard...""Press any key on the keyboard...""Press any key on the keyboard..." ); ); ); );
23 textArea.setEnabled( textArea.setEnabled( textArea.setEnabled( textArea.setEnabled( falsefalsefalsefalse ); ); ); ); // dis// dis// dis// disativa ativa ativa ativa textareatextareatextareatextarea
24 textArea.setDisabledTextColor( textArea.setDisabledTextColor( textArea.setDisabledTextColor( textArea.setDisabledTextColor( Color.BLACKColor.BLACKColor.BLACKColor.BLACK ); ); ); ); // // // // configura cor de textoconfigura cor de textoconfigura cor de textoconfigura cor de texto
25 add( textArea ); add( textArea ); add( textArea ); add( textArea ); // ad// ad// ad// adicionaicionaicionaiciona textarea textarea textarea textarea aoaoaoao JFrame JFrame JFrame JFrame
26
27 addKeyListener( addKeyListener( addKeyListener( addKeyListener( thisthisthisthis ); ); ); ); // // // // permite que o permite que o permite que o permite que o frame processframe processframe processframe processe eventos de tece eventos de tece eventos de tece eventos de tecladoladoladolado
28 } } } } // // // // fim do construtorfim do construtorfim do construtorfim do construtor KeyDemoFrame KeyDemoFrame KeyDemoFrame KeyDemoFrame
Introdução à Tecnologia Java – 02/2012
Exemplo 3 importimportimportimport java.awt.Color; java.awt.Color; java.awt.Color; java.awt.Color;
4 importimportimportimport java.awt.event.KeyListener; java.awt.event.KeyListener; java.awt.event.KeyListener; java.awt.event.KeyListener;
5 importimportimportimport java.awt.event.KeyEvent; java.awt.event.KeyEvent; java.awt.event.KeyEvent; java.awt.event.KeyEvent;
6 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
7 importimportimportimport javax.swing.JText javax.swing.JText javax.swing.JText javax.swing.JTextArea;Area;Area;Area;
9 publicpublicpublicpublic classclassclassclass KeyDemoFrame KeyDemoFrame KeyDemoFrame KeyDemoFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame implementsimplementsimplementsimplements KeyListener KeyListener KeyListener KeyListener
10 {{{{
11 privateprivateprivateprivate String line1 = String line1 = String line1 = String line1 = """"""""; ; ; ; // // // // primeira linha de textareaprimeira linha de textareaprimeira linha de textareaprimeira linha de textarea
12 privateprivateprivateprivate String line2 = String line2 = String line2 = String line2 = """"""""; ; ; ; // // // // segundasegundasegundasegunda linha de textarea linha de textarea linha de textarea linha de textarea
13 privateprivateprivateprivate String line3 = String line3 = String line3 = String line3 = """"""""; ; ; ; // // // // teteteterceirarceirarceirarceira linha de textarea linha de textarea linha de textarea linha de textarea
Implementa a interface KeyListener
Celso Olivete Júnior 201
13 privateprivateprivateprivate String line3 = String line3 = String line3 = String line3 = """"""""; ; ; ; // // // // teteteterceirarceirarceirarceira linha de textarea linha de textarea linha de textarea linha de textarea
14 privateprivateprivateprivate JTextArea textArea; JTextArea textArea; JTextArea textArea; JTextArea textArea; // textarea // textarea // textarea // textarea a exibir saídaa exibir saídaa exibir saídaa exibir saída
16 // // // // construtor KeyDemoFrameconstrutor KeyDemoFrameconstrutor KeyDemoFrameconstrutor KeyDemoFrame
17 publicpublicpublicpublic KeyDemoFrame() KeyDemoFrame() KeyDemoFrame() KeyDemoFrame()
18 { { { {
19 supersupersupersuper( ( ( ( "Demonstrating Keystroke Events""Demonstrating Keystroke Events""Demonstrating Keystroke Events""Demonstrating Keystroke Events" ); ); ); );
21 textArea = textArea = textArea = textArea = newnewnewnew J J J JTextArea( TextArea( TextArea( TextArea( 10101010, , , , 15151515 ); ); ); ); // // // // configuraconfiguraconfiguraconfigura JTextArea JTextArea JTextArea JTextArea
22 textArea.setText( textArea.setText( textArea.setText( textArea.setText( "Press any key on the keyboard...""Press any key on the keyboard...""Press any key on the keyboard...""Press any key on the keyboard..." ); ); ); );
23 textArea.setEnabled( textArea.setEnabled( textArea.setEnabled( textArea.setEnabled( falsefalsefalsefalse ); ); ); ); // dis// dis// dis// disativa ativa ativa ativa textareatextareatextareatextarea
24 textArea.setDisabledTextColor( textArea.setDisabledTextColor( textArea.setDisabledTextColor( textArea.setDisabledTextColor( Color.BLACKColor.BLACKColor.BLACKColor.BLACK ); ); ); ); // // // // configura cor de textoconfigura cor de textoconfigura cor de textoconfigura cor de texto
25 add( textArea ); add( textArea ); add( textArea ); add( textArea ); // ad// ad// ad// adicionaicionaicionaiciona textarea textarea textarea textarea aoaoaoao JFrame JFrame JFrame JFrame
26
27 addKeyListener( addKeyListener( addKeyListener( addKeyListener( thisthisthisthis ); ); ); ); // // // // permite que o permite que o permite que o permite que o frame processframe processframe processframe processe eventos de tece eventos de tece eventos de tece eventos de tecladoladoladolado
28 } } } } // // // // fim do construtorfim do construtorfim do construtorfim do construtor KeyDemoFrame KeyDemoFrame KeyDemoFrame KeyDemoFrame
Configura a cor de segundo plano
Introdução à Tecnologia Java – 02/2012
Exemplo 3 importimportimportimport java.awt.Color; java.awt.Color; java.awt.Color; java.awt.Color;
4 importimportimportimport java.awt.event.KeyListener; java.awt.event.KeyListener; java.awt.event.KeyListener; java.awt.event.KeyListener;
5 importimportimportimport java.awt.event.KeyEvent; java.awt.event.KeyEvent; java.awt.event.KeyEvent; java.awt.event.KeyEvent;
6 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
7 importimportimportimport javax.swing.JText javax.swing.JText javax.swing.JText javax.swing.JTextArea;Area;Area;Area;
9 publicpublicpublicpublic classclassclassclass KeyDemoFrame KeyDemoFrame KeyDemoFrame KeyDemoFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame implementsimplementsimplementsimplements KeyListener KeyListener KeyListener KeyListener
10 {{{{
11 privateprivateprivateprivate String line1 = String line1 = String line1 = String line1 = """"""""; ; ; ; // // // // primeira linha de textareaprimeira linha de textareaprimeira linha de textareaprimeira linha de textarea
12 privateprivateprivateprivate String line2 = String line2 = String line2 = String line2 = """"""""; ; ; ; // // // // segundasegundasegundasegunda linha de textarea linha de textarea linha de textarea linha de textarea
13 privateprivateprivateprivate String line3 = String line3 = String line3 = String line3 = """"""""; ; ; ; // // // // teteteterceirarceirarceirarceira linha de textarea linha de textarea linha de textarea linha de textarea
Implementa a interface KeyListener
Celso Olivete Júnior 202
13 privateprivateprivateprivate String line3 = String line3 = String line3 = String line3 = """"""""; ; ; ; // // // // teteteterceirarceirarceirarceira linha de textarea linha de textarea linha de textarea linha de textarea
14 privateprivateprivateprivate JTextArea textArea; JTextArea textArea; JTextArea textArea; JTextArea textArea; // textarea // textarea // textarea // textarea a exibir saídaa exibir saídaa exibir saídaa exibir saída
16 // // // // construtor KeyDemoFrameconstrutor KeyDemoFrameconstrutor KeyDemoFrameconstrutor KeyDemoFrame
17 publicpublicpublicpublic KeyDemoFrame() KeyDemoFrame() KeyDemoFrame() KeyDemoFrame()
18 { { { {
19 supersupersupersuper( ( ( ( "Demonstrating Keystroke Events""Demonstrating Keystroke Events""Demonstrating Keystroke Events""Demonstrating Keystroke Events" ); ); ); );
21 textArea = textArea = textArea = textArea = newnewnewnew J J J JTextArea( TextArea( TextArea( TextArea( 10101010, , , , 15151515 ); ); ); ); // // // // configuraconfiguraconfiguraconfigura JTextArea JTextArea JTextArea JTextArea
22 textArea.setText( textArea.setText( textArea.setText( textArea.setText( "Press any key on the keyboard...""Press any key on the keyboard...""Press any key on the keyboard...""Press any key on the keyboard..." ); ); ); );
23 textArea.setEnabled( textArea.setEnabled( textArea.setEnabled( textArea.setEnabled( falsefalsefalsefalse ); ); ); ); // dis// dis// dis// disativa ativa ativa ativa textareatextareatextareatextarea
24 textArea.setDisabledTextColor( textArea.setDisabledTextColor( textArea.setDisabledTextColor( textArea.setDisabledTextColor( Color.BLACKColor.BLACKColor.BLACKColor.BLACK ); ); ); ); // // // // configura cor de textoconfigura cor de textoconfigura cor de textoconfigura cor de texto
25 add( textArea ); add( textArea ); add( textArea ); add( textArea ); // ad// ad// ad// adicionaicionaicionaiciona textarea textarea textarea textarea aoaoaoao JFrame JFrame JFrame JFrame
26
27 addKeyListener( addKeyListener( addKeyListener( addKeyListener( thisthisthisthis ); ); ); ); // // // // permite que o permite que o permite que o permite que o frame processframe processframe processframe processe eventos de tece eventos de tece eventos de tece eventos de tecladoladoladolado
28 } } } } // // // // fim do construtorfim do construtorfim do construtorfim do construtor KeyDemoFrame KeyDemoFrame KeyDemoFrame KeyDemoFrame
Configura a cor de segundo plano
Registra a própria aplicação como
um handler de evento
Introdução à Tecnologia Java – 02/2012
Exemplo30 // // // // trata pressionamento de qualquer teclatrata pressionamento de qualquer teclatrata pressionamento de qualquer teclatrata pressionamento de qualquer tecla
31 publicpublicpublicpublic voidvoidvoidvoid keyPressed( KeyEvent event ) keyPressed( KeyEvent event ) keyPressed( KeyEvent event ) keyPressed( KeyEvent event )
32 { { { {
33 line1 = String.format( line1 = String.format( line1 = String.format( line1 = String.format( "Key pressed: %s""Key pressed: %s""Key pressed: %s""Key pressed: %s", , , ,
34 event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() ) ); ); ); ); // // // // gera saída de tecla pressionadagera saída de tecla pressionadagera saída de tecla pressionadagera saída de tecla pressionada
35 setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); // // // // configura a saída das linhas dois e trêsconfigura a saída das linhas dois e trêsconfigura a saída das linhas dois e trêsconfigura a saída das linhas dois e três
36 } } } } // // // // fim do método fim do método fim do método fim do método keyPressedkeyPressedkeyPressedkeyPressed
37
38 // // // // trata liberação de qualquer teclatrata liberação de qualquer teclatrata liberação de qualquer teclatrata liberação de qualquer tecla
Celso Olivete Júnior 203
38 // // // // trata liberação de qualquer teclatrata liberação de qualquer teclatrata liberação de qualquer teclatrata liberação de qualquer tecla
39 publicpublicpublicpublic voidvoidvoidvoid keyReleased( KeyEvent event ) keyReleased( KeyEvent event ) keyReleased( KeyEvent event ) keyReleased( KeyEvent event )
40 { { { {
41 line1 = String.forma line1 = String.forma line1 = String.forma line1 = String.format( t( t( t( "Key released: %s""Key released: %s""Key released: %s""Key released: %s",,,,
42 event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() ) ); ); ); ); // // // // gera saída de tecla liberadagera saída de tecla liberadagera saída de tecla liberadagera saída de tecla liberada
43 setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); // // // // configura a saída das linhas dois e trêsconfigura a saída das linhas dois e trêsconfigura a saída das linhas dois e trêsconfigura a saída das linhas dois e três
44 } } } } // // // // fim do método fim do método fim do método fim do método keyReleasedkeyReleasedkeyReleasedkeyReleased
45
46 // // // // trata prestrata prestrata prestrata pressionamento de qualquer tecla de açsionamento de qualquer tecla de açsionamento de qualquer tecla de açsionamento de qualquer tecla de açãoãoãoão
47 publicpublicpublicpublic voidvoidvoidvoid keyTyped( KeyEvent event ) keyTyped( KeyEvent event ) keyTyped( KeyEvent event ) keyTyped( KeyEvent event )
48 { { { {
49 line1 = String.format( line1 = String.format( line1 = String.format( line1 = String.format( "Key typed: %s""Key typed: %s""Key typed: %s""Key typed: %s", , , , event.getKeyChar()event.getKeyChar()event.getKeyChar()event.getKeyChar() ); ); ); );
50 setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); // // // // configura saída das linhas dois e trêsconfigura saída das linhas dois e trêsconfigura saída das linhas dois e trêsconfigura saída das linhas dois e três
51 } } } } //////// fim do método fim do método fim do método fim do método keyTypedkeyTypedkeyTypedkeyTyped
52
Introdução à Tecnologia Java – 02/2012
Exemplo30 // // // // trata pressionamento de qualquer teclatrata pressionamento de qualquer teclatrata pressionamento de qualquer teclatrata pressionamento de qualquer tecla
31 publicpublicpublicpublic voidvoidvoidvoid keyPressed( KeyEvent event ) keyPressed( KeyEvent event ) keyPressed( KeyEvent event ) keyPressed( KeyEvent event )
32 { { { {
33 line1 = String.format( line1 = String.format( line1 = String.format( line1 = String.format( "Key pressed: %s""Key pressed: %s""Key pressed: %s""Key pressed: %s", , , ,
34 event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() ) ); ); ); ); // // // // gera saída de tecla pressionadagera saída de tecla pressionadagera saída de tecla pressionadagera saída de tecla pressionada
35 setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); // // // // configura a saída das linhas dois e trêsconfigura a saída das linhas dois e trêsconfigura a saída das linhas dois e trêsconfigura a saída das linhas dois e três
36 } } } } // // // // fim do método fim do método fim do método fim do método keyPressedkeyPressedkeyPressedkeyPressed
37
38 // // // // trata liberação de qualquer teclatrata liberação de qualquer teclatrata liberação de qualquer teclatrata liberação de qualquer tecla
Declara o método keyPressed
Celso Olivete Júnior 204
38 // // // // trata liberação de qualquer teclatrata liberação de qualquer teclatrata liberação de qualquer teclatrata liberação de qualquer tecla
39 publicpublicpublicpublic voidvoidvoidvoid keyReleased( KeyEvent event ) keyReleased( KeyEvent event ) keyReleased( KeyEvent event ) keyReleased( KeyEvent event )
40 { { { {
41 line1 = String.forma line1 = String.forma line1 = String.forma line1 = String.format( t( t( t( "Key released: %s""Key released: %s""Key released: %s""Key released: %s",,,,
42 event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() ) ); ); ); ); // // // // gera saída de tecla liberadagera saída de tecla liberadagera saída de tecla liberadagera saída de tecla liberada
43 setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); // // // // configura a saída das linhas dois e trêsconfigura a saída das linhas dois e trêsconfigura a saída das linhas dois e trêsconfigura a saída das linhas dois e três
44 } } } } // // // // fim do método fim do método fim do método fim do método keyReleasedkeyReleasedkeyReleasedkeyReleased
45
46 // // // // trata prestrata prestrata prestrata pressionamento de qualquer tecla de açsionamento de qualquer tecla de açsionamento de qualquer tecla de açsionamento de qualquer tecla de açãoãoãoão
47 publicpublicpublicpublic voidvoidvoidvoid keyTyped( KeyEvent event ) keyTyped( KeyEvent event ) keyTyped( KeyEvent event ) keyTyped( KeyEvent event )
48 { { { {
49 line1 = String.format( line1 = String.format( line1 = String.format( line1 = String.format( "Key typed: %s""Key typed: %s""Key typed: %s""Key typed: %s", , , , event.getKeyChar()event.getKeyChar()event.getKeyChar()event.getKeyChar() ); ); ); );
50 setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); // // // // configura saída das linhas dois e trêsconfigura saída das linhas dois e trêsconfigura saída das linhas dois e trêsconfigura saída das linhas dois e três
51 } } } } //////// fim do método fim do método fim do método fim do método keyTypedkeyTypedkeyTypedkeyTyped
52
Introdução à Tecnologia Java – 02/2012
Exemplo30 // // // // trata pressionamento de qualquer teclatrata pressionamento de qualquer teclatrata pressionamento de qualquer teclatrata pressionamento de qualquer tecla
31 publicpublicpublicpublic voidvoidvoidvoid keyPressed( KeyEvent event ) keyPressed( KeyEvent event ) keyPressed( KeyEvent event ) keyPressed( KeyEvent event )
32 { { { {
33 line1 = String.format( line1 = String.format( line1 = String.format( line1 = String.format( "Key pressed: %s""Key pressed: %s""Key pressed: %s""Key pressed: %s", , , ,
34 event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() ) ); ); ); ); // // // // gera saída de tecla pressionadagera saída de tecla pressionadagera saída de tecla pressionadagera saída de tecla pressionada
35 setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); // // // // configura a saída das linhas dois e trêsconfigura a saída das linhas dois e trêsconfigura a saída das linhas dois e trêsconfigura a saída das linhas dois e três
36 } } } } // // // // fim do método fim do método fim do método fim do método keyPressedkeyPressedkeyPressedkeyPressed
37
38 // // // // trata liberação de qualquer teclatrata liberação de qualquer teclatrata liberação de qualquer teclatrata liberação de qualquer tecla
Declara o método keyPressed
Obtém o código da tecla
pressionada
Celso Olivete Júnior 205
38 // // // // trata liberação de qualquer teclatrata liberação de qualquer teclatrata liberação de qualquer teclatrata liberação de qualquer tecla
39 publicpublicpublicpublic voidvoidvoidvoid keyReleased( KeyEvent event ) keyReleased( KeyEvent event ) keyReleased( KeyEvent event ) keyReleased( KeyEvent event )
40 { { { {
41 line1 = String.forma line1 = String.forma line1 = String.forma line1 = String.format( t( t( t( "Key released: %s""Key released: %s""Key released: %s""Key released: %s",,,,
42 event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() ) ); ); ); ); // // // // gera saída de tecla liberadagera saída de tecla liberadagera saída de tecla liberadagera saída de tecla liberada
43 setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); // // // // configura a saída das linhas dois e trêsconfigura a saída das linhas dois e trêsconfigura a saída das linhas dois e trêsconfigura a saída das linhas dois e três
44 } } } } // // // // fim do método fim do método fim do método fim do método keyReleasedkeyReleasedkeyReleasedkeyReleased
45
46 // // // // trata prestrata prestrata prestrata pressionamento de qualquer tecla de açsionamento de qualquer tecla de açsionamento de qualquer tecla de açsionamento de qualquer tecla de açãoãoãoão
47 publicpublicpublicpublic voidvoidvoidvoid keyTyped( KeyEvent event ) keyTyped( KeyEvent event ) keyTyped( KeyEvent event ) keyTyped( KeyEvent event )
48 { { { {
49 line1 = String.format( line1 = String.format( line1 = String.format( line1 = String.format( "Key typed: %s""Key typed: %s""Key typed: %s""Key typed: %s", , , , event.getKeyChar()event.getKeyChar()event.getKeyChar()event.getKeyChar() ); ); ); );
50 setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); // // // // configura saída das linhas dois e trêsconfigura saída das linhas dois e trêsconfigura saída das linhas dois e trêsconfigura saída das linhas dois e três
51 } } } } //////// fim do método fim do método fim do método fim do método keyTypedkeyTypedkeyTypedkeyTyped
52
Introdução à Tecnologia Java – 02/2012
Exemplo30 // // // // trata pressionamento de qualquer teclatrata pressionamento de qualquer teclatrata pressionamento de qualquer teclatrata pressionamento de qualquer tecla
31 publicpublicpublicpublic voidvoidvoidvoid keyPressed( KeyEvent event ) keyPressed( KeyEvent event ) keyPressed( KeyEvent event ) keyPressed( KeyEvent event )
32 { { { {
33 line1 = String.format( line1 = String.format( line1 = String.format( line1 = String.format( "Key pressed: %s""Key pressed: %s""Key pressed: %s""Key pressed: %s", , , ,
34 event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() ) ); ); ); ); // // // // gera saída de tecla pressionadagera saída de tecla pressionadagera saída de tecla pressionadagera saída de tecla pressionada
35 setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); // // // // configura a saída das linhas dois e trêsconfigura a saída das linhas dois e trêsconfigura a saída das linhas dois e trêsconfigura a saída das linhas dois e três
36 } } } } // // // // fim do método fim do método fim do método fim do método keyPressedkeyPressedkeyPressedkeyPressed
37
38 // // // // trata liberação de qualquer teclatrata liberação de qualquer teclatrata liberação de qualquer teclatrata liberação de qualquer tecla
Declara o método keyPressed
Obtém o código da tecla
pressionada
Celso Olivete Júnior 206
38 // // // // trata liberação de qualquer teclatrata liberação de qualquer teclatrata liberação de qualquer teclatrata liberação de qualquer tecla
39 publicpublicpublicpublic voidvoidvoidvoid keyReleased( KeyEvent event ) keyReleased( KeyEvent event ) keyReleased( KeyEvent event ) keyReleased( KeyEvent event )
40 { { { {
41 line1 = String.forma line1 = String.forma line1 = String.forma line1 = String.format( t( t( t( "Key released: %s""Key released: %s""Key released: %s""Key released: %s",,,,
42 event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() ) ); ); ); ); // // // // gera saída de tecla liberadagera saída de tecla liberadagera saída de tecla liberadagera saída de tecla liberada
43 setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); // // // // configura a saída das linhas dois e trêsconfigura a saída das linhas dois e trêsconfigura a saída das linhas dois e trêsconfigura a saída das linhas dois e três
44 } } } } // // // // fim do método fim do método fim do método fim do método keyReleasedkeyReleasedkeyReleasedkeyReleased
45
46 // // // // trata prestrata prestrata prestrata pressionamento de qualquer tecla de açsionamento de qualquer tecla de açsionamento de qualquer tecla de açsionamento de qualquer tecla de açãoãoãoão
47 publicpublicpublicpublic voidvoidvoidvoid keyTyped( KeyEvent event ) keyTyped( KeyEvent event ) keyTyped( KeyEvent event ) keyTyped( KeyEvent event )
48 { { { {
49 line1 = String.format( line1 = String.format( line1 = String.format( line1 = String.format( "Key typed: %s""Key typed: %s""Key typed: %s""Key typed: %s", , , , event.getKeyChar()event.getKeyChar()event.getKeyChar()event.getKeyChar() ); ); ); );
50 setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); // // // // configura saída das linhas dois e trêsconfigura saída das linhas dois e trêsconfigura saída das linhas dois e trêsconfigura saída das linhas dois e três
51 } } } } //////// fim do método fim do método fim do método fim do método keyTypedkeyTypedkeyTypedkeyTyped
52
Declara o método keyReleased
Introdução à Tecnologia Java – 02/2012
Exemplo30 // // // // trata pressionamento de qualquer teclatrata pressionamento de qualquer teclatrata pressionamento de qualquer teclatrata pressionamento de qualquer tecla
31 publicpublicpublicpublic voidvoidvoidvoid keyPressed( KeyEvent event ) keyPressed( KeyEvent event ) keyPressed( KeyEvent event ) keyPressed( KeyEvent event )
32 { { { {
33 line1 = String.format( line1 = String.format( line1 = String.format( line1 = String.format( "Key pressed: %s""Key pressed: %s""Key pressed: %s""Key pressed: %s", , , ,
34 event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() ) ); ); ); ); // // // // gera saída de tecla pressionadagera saída de tecla pressionadagera saída de tecla pressionadagera saída de tecla pressionada
35 setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); // // // // configura a saída das linhas dois e trêsconfigura a saída das linhas dois e trêsconfigura a saída das linhas dois e trêsconfigura a saída das linhas dois e três
36 } } } } // // // // fim do método fim do método fim do método fim do método keyPressedkeyPressedkeyPressedkeyPressed
37
38 // // // // trata liberação de qualquer teclatrata liberação de qualquer teclatrata liberação de qualquer teclatrata liberação de qualquer tecla
Declara o método keyPressed
Obtém o código da tecla
pressionada
Celso Olivete Júnior 207
38 // // // // trata liberação de qualquer teclatrata liberação de qualquer teclatrata liberação de qualquer teclatrata liberação de qualquer tecla
39 publicpublicpublicpublic voidvoidvoidvoid keyReleased( KeyEvent event ) keyReleased( KeyEvent event ) keyReleased( KeyEvent event ) keyReleased( KeyEvent event )
40 { { { {
41 line1 = String.forma line1 = String.forma line1 = String.forma line1 = String.format( t( t( t( "Key released: %s""Key released: %s""Key released: %s""Key released: %s",,,,
42 event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() ) ); ); ); ); // // // // gera saída de tecla liberadagera saída de tecla liberadagera saída de tecla liberadagera saída de tecla liberada
43 setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); // // // // configura a saída das linhas dois e trêsconfigura a saída das linhas dois e trêsconfigura a saída das linhas dois e trêsconfigura a saída das linhas dois e três
44 } } } } // // // // fim do método fim do método fim do método fim do método keyReleasedkeyReleasedkeyReleasedkeyReleased
45
46 // // // // trata prestrata prestrata prestrata pressionamento de qualquer tecla de açsionamento de qualquer tecla de açsionamento de qualquer tecla de açsionamento de qualquer tecla de açãoãoãoão
47 publicpublicpublicpublic voidvoidvoidvoid keyTyped( KeyEvent event ) keyTyped( KeyEvent event ) keyTyped( KeyEvent event ) keyTyped( KeyEvent event )
48 { { { {
49 line1 = String.format( line1 = String.format( line1 = String.format( line1 = String.format( "Key typed: %s""Key typed: %s""Key typed: %s""Key typed: %s", , , , event.getKeyChar()event.getKeyChar()event.getKeyChar()event.getKeyChar() ); ); ); );
50 setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); // // // // configura saída das linhas dois e trêsconfigura saída das linhas dois e trêsconfigura saída das linhas dois e trêsconfigura saída das linhas dois e três
51 } } } } //////// fim do método fim do método fim do método fim do método keyTypedkeyTypedkeyTypedkeyTyped
52
Declara o método keyReleased
Obtém o código da tecla liberada
Introdução à Tecnologia Java – 02/2012
Exemplo30 // // // // trata pressionamento de qualquer teclatrata pressionamento de qualquer teclatrata pressionamento de qualquer teclatrata pressionamento de qualquer tecla
31 publicpublicpublicpublic voidvoidvoidvoid keyPressed( KeyEvent event ) keyPressed( KeyEvent event ) keyPressed( KeyEvent event ) keyPressed( KeyEvent event )
32 { { { {
33 line1 = String.format( line1 = String.format( line1 = String.format( line1 = String.format( "Key pressed: %s""Key pressed: %s""Key pressed: %s""Key pressed: %s", , , ,
34 event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() ) ); ); ); ); // // // // gera saída de tecla pressionadagera saída de tecla pressionadagera saída de tecla pressionadagera saída de tecla pressionada
35 setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); // // // // configura a saída das linhas dois e trêsconfigura a saída das linhas dois e trêsconfigura a saída das linhas dois e trêsconfigura a saída das linhas dois e três
36 } } } } // // // // fim do método fim do método fim do método fim do método keyPressedkeyPressedkeyPressedkeyPressed
37
38 // // // // trata liberação de qualquer teclatrata liberação de qualquer teclatrata liberação de qualquer teclatrata liberação de qualquer tecla
Declara o método keyPressed
Obtém o código da tecla
pressionada
Celso Olivete Júnior 208
38 // // // // trata liberação de qualquer teclatrata liberação de qualquer teclatrata liberação de qualquer teclatrata liberação de qualquer tecla
39 publicpublicpublicpublic voidvoidvoidvoid keyReleased( KeyEvent event ) keyReleased( KeyEvent event ) keyReleased( KeyEvent event ) keyReleased( KeyEvent event )
40 { { { {
41 line1 = String.forma line1 = String.forma line1 = String.forma line1 = String.format( t( t( t( "Key released: %s""Key released: %s""Key released: %s""Key released: %s",,,,
42 event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() ) ); ); ); ); // // // // gera saída de tecla liberadagera saída de tecla liberadagera saída de tecla liberadagera saída de tecla liberada
43 setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); // // // // configura a saída das linhas dois e trêsconfigura a saída das linhas dois e trêsconfigura a saída das linhas dois e trêsconfigura a saída das linhas dois e três
44 } } } } // // // // fim do método fim do método fim do método fim do método keyReleasedkeyReleasedkeyReleasedkeyReleased
45
46 // // // // trata prestrata prestrata prestrata pressionamento de qualquer tecla de açsionamento de qualquer tecla de açsionamento de qualquer tecla de açsionamento de qualquer tecla de açãoãoãoão
47 publicpublicpublicpublic voidvoidvoidvoid keyTyped( KeyEvent event ) keyTyped( KeyEvent event ) keyTyped( KeyEvent event ) keyTyped( KeyEvent event )
48 { { { {
49 line1 = String.format( line1 = String.format( line1 = String.format( line1 = String.format( "Key typed: %s""Key typed: %s""Key typed: %s""Key typed: %s", , , , event.getKeyChar()event.getKeyChar()event.getKeyChar()event.getKeyChar() ); ); ); );
50 setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); // // // // configura saída das linhas dois e trêsconfigura saída das linhas dois e trêsconfigura saída das linhas dois e trêsconfigura saída das linhas dois e três
51 } } } } //////// fim do método fim do método fim do método fim do método keyTypedkeyTypedkeyTypedkeyTyped
52
Declara o método keyReleased
Obtém o código da tecla liberada
Declara o método keyTyped
Introdução à Tecnologia Java – 02/2012
Exemplo30 // // // // trata pressionamento de qualquer teclatrata pressionamento de qualquer teclatrata pressionamento de qualquer teclatrata pressionamento de qualquer tecla
31 publicpublicpublicpublic voidvoidvoidvoid keyPressed( KeyEvent event ) keyPressed( KeyEvent event ) keyPressed( KeyEvent event ) keyPressed( KeyEvent event )
32 { { { {
33 line1 = String.format( line1 = String.format( line1 = String.format( line1 = String.format( "Key pressed: %s""Key pressed: %s""Key pressed: %s""Key pressed: %s", , , ,
34 event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() ) ); ); ); ); // // // // gera saída de tecla pressionadagera saída de tecla pressionadagera saída de tecla pressionadagera saída de tecla pressionada
35 setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); // // // // configura a saída das linhas dois e trêsconfigura a saída das linhas dois e trêsconfigura a saída das linhas dois e trêsconfigura a saída das linhas dois e três
36 } } } } // // // // fim do método fim do método fim do método fim do método keyPressedkeyPressedkeyPressedkeyPressed
37
38 // // // // trata liberação de qualquer teclatrata liberação de qualquer teclatrata liberação de qualquer teclatrata liberação de qualquer tecla
Declara o método keyPressed
Obtém o código da tecla
pressionada
Celso Olivete Júnior 209
38 // // // // trata liberação de qualquer teclatrata liberação de qualquer teclatrata liberação de qualquer teclatrata liberação de qualquer tecla
39 publicpublicpublicpublic voidvoidvoidvoid keyReleased( KeyEvent event ) keyReleased( KeyEvent event ) keyReleased( KeyEvent event ) keyReleased( KeyEvent event )
40 { { { {
41 line1 = String.forma line1 = String.forma line1 = String.forma line1 = String.format( t( t( t( "Key released: %s""Key released: %s""Key released: %s""Key released: %s",,,,
42 event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() )event.getKeyText( event.getKeyCode() ) ); ); ); ); // // // // gera saída de tecla liberadagera saída de tecla liberadagera saída de tecla liberadagera saída de tecla liberada
43 setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); // // // // configura a saída das linhas dois e trêsconfigura a saída das linhas dois e trêsconfigura a saída das linhas dois e trêsconfigura a saída das linhas dois e três
44 } } } } // // // // fim do método fim do método fim do método fim do método keyReleasedkeyReleasedkeyReleasedkeyReleased
45
46 // // // // trata prestrata prestrata prestrata pressionamento de qualquer tecla de açsionamento de qualquer tecla de açsionamento de qualquer tecla de açsionamento de qualquer tecla de açãoãoãoão
47 publicpublicpublicpublic voidvoidvoidvoid keyTyped( KeyEvent event ) keyTyped( KeyEvent event ) keyTyped( KeyEvent event ) keyTyped( KeyEvent event )
48 { { { {
49 line1 = String.format( line1 = String.format( line1 = String.format( line1 = String.format( "Key typed: %s""Key typed: %s""Key typed: %s""Key typed: %s", , , , event.getKeyChar()event.getKeyChar()event.getKeyChar()event.getKeyChar() ); ); ); );
50 setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); setLines2and3( event ); // // // // configura saída das linhas dois e trêsconfigura saída das linhas dois e trêsconfigura saída das linhas dois e trêsconfigura saída das linhas dois e três
51 } } } } //////// fim do método fim do método fim do método fim do método keyTypedkeyTypedkeyTypedkeyTyped
52
Declara o método keyReleased
Obtém o código da tecla liberada
Declara o método keyTyped
Gera saída do caractere digitado
Introdução à Tecnologia Java – 02/2012
Exemplo
53 // // // // configura segunda e terceira linhas de saídaconfigura segunda e terceira linhas de saídaconfigura segunda e terceira linhas de saídaconfigura segunda e terceira linhas de saída
54 privateprivateprivateprivate voidvoidvoidvoid setLines2and3( KeyEvent event ) setLines2and3( KeyEvent event ) setLines2and3( KeyEvent event ) setLines2and3( KeyEvent event )
55 { { { {
56 line2 = String.format( line2 = String.format( line2 = String.format( line2 = String.format( "This key is %san action key""This key is %san action key""This key is %san action key""This key is %san action key", , , ,
57 ( ( ( ( event.isActionKey()event.isActionKey()event.isActionKey()event.isActionKey() ? ? ? ? """""""" : : : : "not ""not ""not ""not " ) ); ) ); ) ); ) );
58
59 String temp = event.getKeyModifiersText( event.getModifiers() );String temp = event.getKeyModifiersText( event.getModifiers() );String temp = event.getKeyModifiersText( event.getModifiers() );String temp = event.getKeyModifiersText( event.getModifiers() );
Celso Olivete Júnior 210
59 String temp = event.getKeyModifiersText( event.getModifiers() );String temp = event.getKeyModifiersText( event.getModifiers() );String temp = event.getKeyModifiersText( event.getModifiers() );String temp = event.getKeyModifiersText( event.getModifiers() );
60
61 line3 = String.format( line3 = String.format( line3 = String.format( line3 = String.format( "Modifier keys pressed: %s""Modifier keys pressed: %s""Modifier keys pressed: %s""Modifier keys pressed: %s", , , ,
62 ( temp.equals( ( temp.equals( ( temp.equals( ( temp.equals( """""""" ) ? ) ? ) ? ) ? "none""none""none""none" : temp ) ); : temp ) ); : temp ) ); : temp ) ); // // // // envia envia envia envia modificadores modificadores modificadores modificadores ppppara a ara a ara a ara a saídasaídasaídasaída
63
64 textArea.setText( Strin textArea.setText( Strin textArea.setText( Strin textArea.setText( String.format( g.format( g.format( g.format( "%s"%s"%s"%s\\\\n%sn%sn%sn%s\\\\n%sn%sn%sn%s\\\\n"n"n"n", , , ,
65 line1, line2, line3 ) ); line1, line2, line3 ) ); line1, line2, line3 ) ); line1, line2, line3 ) ); // // // // gera saída de três linhas de textogera saída de três linhas de textogera saída de três linhas de textogera saída de três linhas de texto
66 } } } } // // // // fim do método fim do método fim do método fim do método setLines2and3setLines2and3setLines2and3setLines2and3
67 } } } } // // // // fim dfim dfim dfim da classea classea classea classe KeyDemoFrameKeyDemoFrameKeyDemoFrameKeyDemoFrame
Introdução à Tecnologia Java – 02/2012
Exemplo
53 // // // // configura segunda e terceira linhas de saídaconfigura segunda e terceira linhas de saídaconfigura segunda e terceira linhas de saídaconfigura segunda e terceira linhas de saída
54 privateprivateprivateprivate voidvoidvoidvoid setLines2and3( KeyEvent event ) setLines2and3( KeyEvent event ) setLines2and3( KeyEvent event ) setLines2and3( KeyEvent event )
55 { { { {
56 line2 = String.format( line2 = String.format( line2 = String.format( line2 = String.format( "This key is %san action key""This key is %san action key""This key is %san action key""This key is %san action key", , , ,
57 ( ( ( ( event.isActionKey()event.isActionKey()event.isActionKey()event.isActionKey() ? ? ? ? """""""" : : : : "not ""not ""not ""not " ) ); ) ); ) ); ) );
58
59 String temp = event.getKeyModifiersText( event.getModifiers() );String temp = event.getKeyModifiersText( event.getModifiers() );String temp = event.getKeyModifiersText( event.getModifiers() );String temp = event.getKeyModifiersText( event.getModifiers() );
Testa se era uma tecla de ação
Celso Olivete Júnior 211
59 String temp = event.getKeyModifiersText( event.getModifiers() );String temp = event.getKeyModifiersText( event.getModifiers() );String temp = event.getKeyModifiersText( event.getModifiers() );String temp = event.getKeyModifiersText( event.getModifiers() );
60
61 line3 = String.format( line3 = String.format( line3 = String.format( line3 = String.format( "Modifier keys pressed: %s""Modifier keys pressed: %s""Modifier keys pressed: %s""Modifier keys pressed: %s", , , ,
62 ( temp.equals( ( temp.equals( ( temp.equals( ( temp.equals( """""""" ) ? ) ? ) ? ) ? "none""none""none""none" : temp ) ); : temp ) ); : temp ) ); : temp ) ); // // // // envia envia envia envia modificadores modificadores modificadores modificadores ppppara a ara a ara a ara a saídasaídasaídasaída
63
64 textArea.setText( Strin textArea.setText( Strin textArea.setText( Strin textArea.setText( String.format( g.format( g.format( g.format( "%s"%s"%s"%s\\\\n%sn%sn%sn%s\\\\n%sn%sn%sn%s\\\\n"n"n"n", , , ,
65 line1, line2, line3 ) ); line1, line2, line3 ) ); line1, line2, line3 ) ); line1, line2, line3 ) ); // // // // gera saída de três linhas de textogera saída de três linhas de textogera saída de três linhas de textogera saída de três linhas de texto
66 } } } } // // // // fim do método fim do método fim do método fim do método setLines2and3setLines2and3setLines2and3setLines2and3
67 } } } } // // // // fim dfim dfim dfim da classea classea classea classe KeyDemoFrameKeyDemoFrameKeyDemoFrameKeyDemoFrame
Introdução à Tecnologia Java – 02/2012
Exemplo
53 // // // // configura segunda e terceira linhas de saídaconfigura segunda e terceira linhas de saídaconfigura segunda e terceira linhas de saídaconfigura segunda e terceira linhas de saída
54 privateprivateprivateprivate voidvoidvoidvoid setLines2and3( KeyEvent event ) setLines2and3( KeyEvent event ) setLines2and3( KeyEvent event ) setLines2and3( KeyEvent event )
55 { { { {
56 line2 = String.format( line2 = String.format( line2 = String.format( line2 = String.format( "This key is %san action key""This key is %san action key""This key is %san action key""This key is %san action key", , , ,
57 ( ( ( ( event.isActionKey()event.isActionKey()event.isActionKey()event.isActionKey() ? ? ? ? """""""" : : : : "not ""not ""not ""not " ) ); ) ); ) ); ) );
58
59 String temp = event.getKeyModifiersText( event.getModifiers() );String temp = event.getKeyModifiersText( event.getModifiers() );String temp = event.getKeyModifiersText( event.getModifiers() );String temp = event.getKeyModifiersText( event.getModifiers() );
Testa se era uma tecla de ação
Celso Olivete Júnior 212
59 String temp = event.getKeyModifiersText( event.getModifiers() );String temp = event.getKeyModifiersText( event.getModifiers() );String temp = event.getKeyModifiersText( event.getModifiers() );String temp = event.getKeyModifiersText( event.getModifiers() );
60
61 line3 = String.format( line3 = String.format( line3 = String.format( line3 = String.format( "Modifier keys pressed: %s""Modifier keys pressed: %s""Modifier keys pressed: %s""Modifier keys pressed: %s", , , ,
62 ( temp.equals( ( temp.equals( ( temp.equals( ( temp.equals( """""""" ) ? ) ? ) ? ) ? "none""none""none""none" : temp ) ); : temp ) ); : temp ) ); : temp ) ); // // // // envia envia envia envia modificadores modificadores modificadores modificadores ppppara a ara a ara a ara a saídasaídasaídasaída
63
64 textArea.setText( Strin textArea.setText( Strin textArea.setText( Strin textArea.setText( String.format( g.format( g.format( g.format( "%s"%s"%s"%s\\\\n%sn%sn%sn%s\\\\n%sn%sn%sn%s\\\\n"n"n"n", , , ,
65 line1, line2, line3 ) ); line1, line2, line3 ) ); line1, line2, line3 ) ); line1, line2, line3 ) ); // // // // gera saída de três linhas de textogera saída de três linhas de textogera saída de três linhas de textogera saída de três linhas de texto
66 } } } } // // // // fim do método fim do método fim do método fim do método setLines2and3setLines2and3setLines2and3setLines2and3
67 } } } } // // // // fim dfim dfim dfim da classea classea classea classe KeyDemoFrameKeyDemoFrameKeyDemoFrameKeyDemoFrame
Determina quaisquer
modificadores pressionados
Introdução à Tecnologia Java – 02/2012
Exemplo 1 // Fig. 11.37: KeyDemo.java// Fig. 11.37: KeyDemo.java// Fig. 11.37: KeyDemo.java// Fig. 11.37: KeyDemo.java
2 // Test// Test// Test// Testandoandoandoando KeyDemoFrame. KeyDemoFrame. KeyDemoFrame. KeyDemoFrame.
3 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
4
5 publicpublicpublicpublic classclassclassclass KeyDemo KeyDemo KeyDemo KeyDemo
6 {{{{
7 publicpublicpublicpublic staticstaticstaticstatic voidvoidvoidvoid main( String args[] ) main( String args[] ) main( String args[] ) main( String args[] )
8 { { { {
9 KeyDemoFrame keyDemoFrame = KeyDemoFrame keyDemoFrame = KeyDemoFrame keyDemoFrame = KeyDemoFrame keyDemoFrame = newnewnewnew KeyDemoFrame(); KeyDemoFrame(); KeyDemoFrame(); KeyDemoFrame();
Celso Olivete Júnior 213
9 KeyDemoFrame keyDemoFrame = KeyDemoFrame keyDemoFrame = KeyDemoFrame keyDemoFrame = KeyDemoFrame keyDemoFrame = newnewnewnew KeyDemoFrame(); KeyDemoFrame(); KeyDemoFrame(); KeyDemoFrame();
10 keyDemoFrame.setDefaultCloseOperation( keyDemoFrame.setDefaultCloseOperation( keyDemoFrame.setDefaultCloseOperation( keyDemoFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSE ); ); ); );
11 keyDemoFrame.setSize( keyDemoFrame.setSize( keyDemoFrame.setSize( keyDemoFrame.setSize( 350350350350, , , , 100100100100 ); ); ); ); // // // // configura o tamanho doconfigura o tamanho doconfigura o tamanho doconfigura o tamanho do frame frame frame frame
12 keyDemoFrame.setVisible( keyDemoFrame.setVisible( keyDemoFrame.setVisible( keyDemoFrame.setVisible( truetruetruetrue ); ); ); ); // // // // exibe o exibe o exibe o exibe o frameframeframeframe
13 } } } } // // // // fim defim defim defim de main main main main
14 } } } } // // // // fim da fim da fim da fim da classclassclassclasseeee KeyDe KeyDe KeyDe KeyDemomomomo
Introdução à Tecnologia Java – 02/2012
Exemplo
Celso Olivete Júnior 214
Introdução à Tecnologia Java – 02/2012
Gerenciadores de layout
• Fornecidos para organizar componentes GUI em
um contêiner.
•Fornecem as capacidades básicas de layout.
•Implementam a interface LayoutManager.
Celso Olivete Júnior 215
Introdução à Tecnologia Java – 02/2012
FlowLayout:
•É o gerenciador de layout mais simples.
•Os componentes GUI são colocados em um
contêiner da esquerda para a direita na ordem
em que eles são adicionados ao contêiner.
•Os componentes podem ser alinhados à
esquerda, centralizados ou alinhados à
esquerda.Celso Olivete Júnior 216
Introdução à Tecnologia Java – 02/2012
Gerenciadores de layout
Gerenciador de layout
Descrição
FlowLayoutFlowLayoutFlowLayoutFlowLayout Padrão para javax.swing.JPaneljavax.swing.JPaneljavax.swing.JPaneljavax.swing.JPanel. Coloca os componentes seqüencialmente (da esquerda para a direita) na ordem que foram
Celso Olivete Júnior 217
seqüencialmente (da esquerda para a direita) na ordem que foram adicionados. Também é possível especificar a ordem dos componentes utilizando o método ContainContainContainContainerererer method addaddaddadd, que aceita um Component e uma posição de índice do tipo inteiro como argumentos.
BorderLayoutBorderLayoutBorderLayoutBorderLayout Padrão para JFrameJFrameJFrameJFrames (e outras janelas). Organiza os componentes em cinco áreas: NORTHNORTHNORTHNORTH, SOUTHSOUTHSOUTHSOUTH, EASTEASTEASTEAST, WESTWESTWESTWEST e CENTERCENTERCENTERCENTER.
GridLayoutGridLayoutGridLayoutGridLayout Organiza os componentes nas linhas e colunas.
Introdução à Tecnologia Java – 02/2012
Exemplo 2 // // // // Demonstrando os alinhamentos de FlowLayoutDemonstrando os alinhamentos de FlowLayoutDemonstrando os alinhamentos de FlowLayoutDemonstrando os alinhamentos de FlowLayout....
3 importimportimportimport java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout;
4 importimportimportimport java.awt.Container; java.awt.Container; java.awt.Container; java.awt.Container;
5 importimportimportimport java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener;
6 importimportimportimport java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent;
7 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
8 importimportimportimport javax.swing.JButton; javax.swing.JButton; javax.swing.JButton; javax.swing.JButton;
10 publicpublicpublicpublic classclassclassclass FlowLayoutFrame FlowLayoutFrame FlowLayoutFrame FlowLayoutFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
11 {{{{
Celso Olivete Júnior 218
12 privateprivateprivateprivate JButton leftJButton; JButton leftJButton; JButton leftJButton; JButton leftJButton; // // // // botão para configurar alinhamento à esquerdabotão para configurar alinhamento à esquerdabotão para configurar alinhamento à esquerdabotão para configurar alinhamento à esquerda
13 privateprivateprivateprivate JButton centerJButton; JButton centerJButton; JButton centerJButton; JButton centerJButton; // // // // botão para configurar alinhamento centralizadobotão para configurar alinhamento centralizadobotão para configurar alinhamento centralizadobotão para configurar alinhamento centralizado
14 privateprivateprivateprivate JButton JButton JButton JButton rightJButton; rightJButton; rightJButton; rightJButton; // // // // botão para configurar alinhamento à dirbotão para configurar alinhamento à dirbotão para configurar alinhamento à dirbotão para configurar alinhamento à direitaeitaeitaeita
15 privateprivateprivateprivate FlowLayout layout; FlowLayout layout; FlowLayout layout; FlowLayout layout; // // // // objeto de layout objeto de layout objeto de layout objeto de layout
16 privateprivateprivateprivate Container container; Container container; Container container; Container container; // // // // contêiner para configurar layoutcontêiner para configurar layoutcontêiner para configurar layoutcontêiner para configurar layout
17
18 // // // // configura GUI e registra listeners de botãoconfigura GUI e registra listeners de botãoconfigura GUI e registra listeners de botãoconfigura GUI e registra listeners de botão
19 publicpublicpublicpublic FlowLayoutFrame() FlowLayoutFrame() FlowLayoutFrame() FlowLayoutFrame()
20 { { { {
21 supersupersupersuper( ( ( ( "FlowLayout Demo""FlowLayout Demo""FlowLayout Demo""FlowLayout Demo" ); ); ); );
22
23 layout = layout = layout = layout = newnewnewnew FlowLayout(); FlowLayout(); FlowLayout(); FlowLayout(); // cr// cr// cr// criaiaiaia FlowLayout FlowLayout FlowLayout FlowLayout
24 container = getContentPane(); container = getContentPane(); container = getContentPane(); container = getContentPane(); // // // // obtémobtémobtémobtém contêiner para contêiner para contêiner para contêiner para layoutlayoutlayoutlayout
25 setLayout( layout ); setLayout( layout ); setLayout( layout ); setLayout( layout ); // // // // configconfigconfigconfigura ura ura ura layoulayoulayoulayout do framet do framet do framet do frame
Introdução à Tecnologia Java – 02/2012
Exemplo 2 // // // // Demonstrando os alinhamentos de FlowLayoutDemonstrando os alinhamentos de FlowLayoutDemonstrando os alinhamentos de FlowLayoutDemonstrando os alinhamentos de FlowLayout....
3 importimportimportimport java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout;
4 importimportimportimport java.awt.Container; java.awt.Container; java.awt.Container; java.awt.Container;
5 importimportimportimport java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener;
6 importimportimportimport java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent;
7 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
8 importimportimportimport javax.swing.JButton; javax.swing.JButton; javax.swing.JButton; javax.swing.JButton;
10 publicpublicpublicpublic classclassclassclass FlowLayoutFrame FlowLayoutFrame FlowLayoutFrame FlowLayoutFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
11 {{{{
Celso Olivete Júnior 219
12 privateprivateprivateprivate JButton leftJButton; JButton leftJButton; JButton leftJButton; JButton leftJButton; // // // // botão para configurar alinhamento à esquerdabotão para configurar alinhamento à esquerdabotão para configurar alinhamento à esquerdabotão para configurar alinhamento à esquerda
13 privateprivateprivateprivate JButton centerJButton; JButton centerJButton; JButton centerJButton; JButton centerJButton; // // // // botão para configurar alinhamento centralizadobotão para configurar alinhamento centralizadobotão para configurar alinhamento centralizadobotão para configurar alinhamento centralizado
14 privateprivateprivateprivate JButton JButton JButton JButton rightJButton; rightJButton; rightJButton; rightJButton; // // // // botão para configurar alinhamento à dirbotão para configurar alinhamento à dirbotão para configurar alinhamento à dirbotão para configurar alinhamento à direitaeitaeitaeita
15 privateprivateprivateprivate FlowLayout layout; FlowLayout layout; FlowLayout layout; FlowLayout layout; // // // // objeto de layout objeto de layout objeto de layout objeto de layout
16 privateprivateprivateprivate Container container; Container container; Container container; Container container; // // // // contêiner para configurar layoutcontêiner para configurar layoutcontêiner para configurar layoutcontêiner para configurar layout
17
18 // // // // configura GUI e registra listeners de botãoconfigura GUI e registra listeners de botãoconfigura GUI e registra listeners de botãoconfigura GUI e registra listeners de botão
19 publicpublicpublicpublic FlowLayoutFrame() FlowLayoutFrame() FlowLayoutFrame() FlowLayoutFrame()
20 { { { {
21 supersupersupersuper( ( ( ( "FlowLayout Demo""FlowLayout Demo""FlowLayout Demo""FlowLayout Demo" ); ); ); );
22
23 layout = layout = layout = layout = newnewnewnew FlowLayout(); FlowLayout(); FlowLayout(); FlowLayout(); // cr// cr// cr// criaiaiaia FlowLayout FlowLayout FlowLayout FlowLayout
24 container = getContentPane(); container = getContentPane(); container = getContentPane(); container = getContentPane(); // // // // obtémobtémobtémobtém contêiner para contêiner para contêiner para contêiner para layoutlayoutlayoutlayout
25 setLayout( layout ); setLayout( layout ); setLayout( layout ); setLayout( layout ); // // // // configconfigconfigconfigura ura ura ura layoulayoulayoulayout do framet do framet do framet do frame
Cria FlowLayout
Introdução à Tecnologia Java – 02/2012
Exemplo 2 // // // // Demonstrando os alinhamentos de FlowLayoutDemonstrando os alinhamentos de FlowLayoutDemonstrando os alinhamentos de FlowLayoutDemonstrando os alinhamentos de FlowLayout....
3 importimportimportimport java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout; java.awt.FlowLayout;
4 importimportimportimport java.awt.Container; java.awt.Container; java.awt.Container; java.awt.Container;
5 importimportimportimport java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener;
6 importimportimportimport java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent;
7 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
8 importimportimportimport javax.swing.JButton; javax.swing.JButton; javax.swing.JButton; javax.swing.JButton;
10 publicpublicpublicpublic classclassclassclass FlowLayoutFrame FlowLayoutFrame FlowLayoutFrame FlowLayoutFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
11 {{{{
Celso Olivete Júnior 220
12 privateprivateprivateprivate JButton leftJButton; JButton leftJButton; JButton leftJButton; JButton leftJButton; // // // // botão para configurar alinhamento à esquerdabotão para configurar alinhamento à esquerdabotão para configurar alinhamento à esquerdabotão para configurar alinhamento à esquerda
13 privateprivateprivateprivate JButton centerJButton; JButton centerJButton; JButton centerJButton; JButton centerJButton; // // // // botão para configurar alinhamento centralizadobotão para configurar alinhamento centralizadobotão para configurar alinhamento centralizadobotão para configurar alinhamento centralizado
14 privateprivateprivateprivate JButton JButton JButton JButton rightJButton; rightJButton; rightJButton; rightJButton; // // // // botão para configurar alinhamento à dirbotão para configurar alinhamento à dirbotão para configurar alinhamento à dirbotão para configurar alinhamento à direitaeitaeitaeita
15 privateprivateprivateprivate FlowLayout layout; FlowLayout layout; FlowLayout layout; FlowLayout layout; // // // // objeto de layout objeto de layout objeto de layout objeto de layout
16 privateprivateprivateprivate Container container; Container container; Container container; Container container; // // // // contêiner para configurar layoutcontêiner para configurar layoutcontêiner para configurar layoutcontêiner para configurar layout
17
18 // // // // configura GUI e registra listeners de botãoconfigura GUI e registra listeners de botãoconfigura GUI e registra listeners de botãoconfigura GUI e registra listeners de botão
19 publicpublicpublicpublic FlowLayoutFrame() FlowLayoutFrame() FlowLayoutFrame() FlowLayoutFrame()
20 { { { {
21 supersupersupersuper( ( ( ( "FlowLayout Demo""FlowLayout Demo""FlowLayout Demo""FlowLayout Demo" ); ); ); );
22
23 layout = layout = layout = layout = newnewnewnew FlowLayout(); FlowLayout(); FlowLayout(); FlowLayout(); // cr// cr// cr// criaiaiaia FlowLayout FlowLayout FlowLayout FlowLayout
24 container = getContentPane(); container = getContentPane(); container = getContentPane(); container = getContentPane(); // // // // obtémobtémobtémobtém contêiner para contêiner para contêiner para contêiner para layoutlayoutlayoutlayout
25 setLayout( layout ); setLayout( layout ); setLayout( layout ); setLayout( layout ); // // // // configconfigconfigconfigura ura ura ura layoulayoulayoulayout do framet do framet do framet do frame
Cria FlowLayout
Configura o layout da aplicação
Introdução à Tecnologia Java – 02/2012
Exemplo27 // // // // configura leftJButton e registra listenerconfigura leftJButton e registra listenerconfigura leftJButton e registra listenerconfigura leftJButton e registra listener
28 leftJButton = leftJButton = leftJButton = leftJButton = newnewnewnew JButton( JButton( JButton( JButton( "Left""Left""Left""Left" ); ); ); ); // cr// cr// cr// criaiaiaia botão botão botão botão LeftLeftLeftLeft
29 add( leftJButton ); add( leftJButton ); add( leftJButton ); add( leftJButton ); // // // // adiciona o botão Left ao frameadiciona o botão Left ao frameadiciona o botão Left ao frameadiciona o botão Left ao frame
30 leftJButton.addActionListener( leftJButton.addActionListener( leftJButton.addActionListener( leftJButton.addActionListener(
32 newnewnewnew Act Act Act ActionListener() ionListener() ionListener() ionListener() // // // // classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
33 { { { {
34 // proces // proces // proces // processa o evento sa o evento sa o evento sa o evento leftJButton leftJButton leftJButton leftJButton
35 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
36 { { { {
Celso Olivete Júnior 221
37 layout.setAlignment( layout.setAlignment( layout.setAlignment( layout.setAlignment( FlowLayout.LEFTFlowLayout.LEFTFlowLayout.LEFTFlowLayout.LEFT ); ); ); );
39 // reali // reali // reali // realinhanhanhanha os os os os componentcomponentcomponentcomponenteeeessss anexados anexados anexados anexados
40 layout.layoutContainer( container );layout.layoutContainer( container );layout.layoutContainer( container );layout.layoutContainer( container );
41 } } } } // // // // fim do método fim do método fim do método fim do método actionPerformedactionPerformedactionPerformedactionPerformed
42 } } } } // // // // fim da classe interna anônimafim da classe interna anônimafim da classe interna anônimafim da classe interna anônima
43 ); ); ); ); // // // // fim da chamada parafim da chamada parafim da chamada parafim da chamada para addActionListeneraddActionListeneraddActionListeneraddActionListener
45 // // // // configuraconfiguraconfiguraconfigura centerJButton centerJButton centerJButton centerJButton eeee regist regist regist registrararara listener listener listener listener
46 centerJButton = centerJButton = centerJButton = centerJButton = newnewnewnew JButton( JButton( JButton( JButton( "Center""Center""Center""Center" ); ); ); ); // cria botão// cria botão// cria botão// cria botão Center Center Center Center
47 add( centerJButton ); add( centerJButton ); add( centerJButton ); add( centerJButton ); // ad// ad// ad// adicionaicionaicionaiciona botão botão botão botão Center Center Center Center ao ao ao ao frameframeframeframe
48 centerJButton.addAction centerJButton.addAction centerJButton.addAction centerJButton.addActionListener(Listener(Listener(Listener(
50 newnewnewnew ActionListener() ActionListener() ActionListener() ActionListener() // // // // classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
51 { { { {
52 // process // process // process // processa eventoa eventoa eventoa evento centerJButton centerJButton centerJButton centerJButton
53 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
54 { { { {
55 layolayolayolayout.setAlignment( ut.setAlignment( ut.setAlignment( ut.setAlignment( FlowLayout.CENTERFlowLayout.CENTERFlowLayout.CENTERFlowLayout.CENTER ); ); ); );
Introdução à Tecnologia Java – 02/2012
Exemplo27 // // // // configura leftJButton e registra listenerconfigura leftJButton e registra listenerconfigura leftJButton e registra listenerconfigura leftJButton e registra listener
28 leftJButton = leftJButton = leftJButton = leftJButton = newnewnewnew JButton( JButton( JButton( JButton( "Left""Left""Left""Left" ); ); ); ); // cr// cr// cr// criaiaiaia botão botão botão botão LeftLeftLeftLeft
29 add( leftJButton ); add( leftJButton ); add( leftJButton ); add( leftJButton ); // // // // adiciona o botão Left ao frameadiciona o botão Left ao frameadiciona o botão Left ao frameadiciona o botão Left ao frame
30 leftJButton.addActionListener( leftJButton.addActionListener( leftJButton.addActionListener( leftJButton.addActionListener(
32 newnewnewnew Act Act Act ActionListener() ionListener() ionListener() ionListener() // // // // classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
33 { { { {
34 // proces // proces // proces // processa o evento sa o evento sa o evento sa o evento leftJButton leftJButton leftJButton leftJButton
35 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
36 { { { {
Adiciona JButton; FlowLayouttratará o posicionamento
Celso Olivete Júnior 222
37 layout.setAlignment( layout.setAlignment( layout.setAlignment( layout.setAlignment( FlowLayout.LEFTFlowLayout.LEFTFlowLayout.LEFTFlowLayout.LEFT ); ); ); );
39 // reali // reali // reali // realinhanhanhanha os os os os componentcomponentcomponentcomponenteeeessss anexados anexados anexados anexados
40 layout.layoutContainer( container );layout.layoutContainer( container );layout.layoutContainer( container );layout.layoutContainer( container );
41 } } } } // // // // fim do método fim do método fim do método fim do método actionPerformedactionPerformedactionPerformedactionPerformed
42 } } } } // // // // fim da classe interna anônimafim da classe interna anônimafim da classe interna anônimafim da classe interna anônima
43 ); ); ); ); // // // // fim da chamada parafim da chamada parafim da chamada parafim da chamada para addActionListeneraddActionListeneraddActionListeneraddActionListener
45 // // // // configuraconfiguraconfiguraconfigura centerJButton centerJButton centerJButton centerJButton eeee regist regist regist registrararara listener listener listener listener
46 centerJButton = centerJButton = centerJButton = centerJButton = newnewnewnew JButton( JButton( JButton( JButton( "Center""Center""Center""Center" ); ); ); ); // cria botão// cria botão// cria botão// cria botão Center Center Center Center
47 add( centerJButton ); add( centerJButton ); add( centerJButton ); add( centerJButton ); // ad// ad// ad// adicionaicionaicionaiciona botão botão botão botão Center Center Center Center ao ao ao ao frameframeframeframe
48 centerJButton.addAction centerJButton.addAction centerJButton.addAction centerJButton.addActionListener(Listener(Listener(Listener(
50 newnewnewnew ActionListener() ActionListener() ActionListener() ActionListener() // // // // classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
51 { { { {
52 // process // process // process // processa eventoa eventoa eventoa evento centerJButton centerJButton centerJButton centerJButton
53 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
54 { { { {
55 layolayolayolayout.setAlignment( ut.setAlignment( ut.setAlignment( ut.setAlignment( FlowLayout.CENTERFlowLayout.CENTERFlowLayout.CENTERFlowLayout.CENTER ); ); ); );
Introdução à Tecnologia Java – 02/2012
Exemplo27 // // // // configura leftJButton e registra listenerconfigura leftJButton e registra listenerconfigura leftJButton e registra listenerconfigura leftJButton e registra listener
28 leftJButton = leftJButton = leftJButton = leftJButton = newnewnewnew JButton( JButton( JButton( JButton( "Left""Left""Left""Left" ); ); ); ); // cr// cr// cr// criaiaiaia botão botão botão botão LeftLeftLeftLeft
29 add( leftJButton ); add( leftJButton ); add( leftJButton ); add( leftJButton ); // // // // adiciona o botão Left ao frameadiciona o botão Left ao frameadiciona o botão Left ao frameadiciona o botão Left ao frame
30 leftJButton.addActionListener( leftJButton.addActionListener( leftJButton.addActionListener( leftJButton.addActionListener(
32 newnewnewnew Act Act Act ActionListener() ionListener() ionListener() ionListener() // // // // classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
33 { { { {
34 // proces // proces // proces // processa o evento sa o evento sa o evento sa o evento leftJButton leftJButton leftJButton leftJButton
35 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
36 { { { {
Adiciona JButton; FlowLayouttratará o posicionamento
Celso Olivete Júnior 223
37 layout.setAlignment( layout.setAlignment( layout.setAlignment( layout.setAlignment( FlowLayout.LEFTFlowLayout.LEFTFlowLayout.LEFTFlowLayout.LEFT ); ); ); );
39 // reali // reali // reali // realinhanhanhanha os os os os componentcomponentcomponentcomponenteeeessss anexados anexados anexados anexados
40 layout.layoutContainer( container );layout.layoutContainer( container );layout.layoutContainer( container );layout.layoutContainer( container );
41 } } } } // // // // fim do método fim do método fim do método fim do método actionPerformedactionPerformedactionPerformedactionPerformed
42 } } } } // // // // fim da classe interna anônimafim da classe interna anônimafim da classe interna anônimafim da classe interna anônima
43 ); ); ); ); // // // // fim da chamada parafim da chamada parafim da chamada parafim da chamada para addActionListeneraddActionListeneraddActionListeneraddActionListener
45 // // // // configuraconfiguraconfiguraconfigura centerJButton centerJButton centerJButton centerJButton eeee regist regist regist registrararara listener listener listener listener
46 centerJButton = centerJButton = centerJButton = centerJButton = newnewnewnew JButton( JButton( JButton( JButton( "Center""Center""Center""Center" ); ); ); ); // cria botão// cria botão// cria botão// cria botão Center Center Center Center
47 add( centerJButton ); add( centerJButton ); add( centerJButton ); add( centerJButton ); // ad// ad// ad// adicionaicionaicionaiciona botão botão botão botão Center Center Center Center ao ao ao ao frameframeframeframe
48 centerJButton.addAction centerJButton.addAction centerJButton.addAction centerJButton.addActionListener(Listener(Listener(Listener(
50 newnewnewnew ActionListener() ActionListener() ActionListener() ActionListener() // // // // classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
51 { { { {
52 // process // process // process // processa eventoa eventoa eventoa evento centerJButton centerJButton centerJButton centerJButton
53 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
54 { { { {
55 layolayolayolayout.setAlignment( ut.setAlignment( ut.setAlignment( ut.setAlignment( FlowLayout.CENTERFlowLayout.CENTERFlowLayout.CENTERFlowLayout.CENTER ); ); ); );
Configura o alinhamento à esquerda
Introdução à Tecnologia Java – 02/2012
Exemplo27 // // // // configura leftJButton e registra listenerconfigura leftJButton e registra listenerconfigura leftJButton e registra listenerconfigura leftJButton e registra listener
28 leftJButton = leftJButton = leftJButton = leftJButton = newnewnewnew JButton( JButton( JButton( JButton( "Left""Left""Left""Left" ); ); ); ); // cr// cr// cr// criaiaiaia botão botão botão botão LeftLeftLeftLeft
29 add( leftJButton ); add( leftJButton ); add( leftJButton ); add( leftJButton ); // // // // adiciona o botão Left ao frameadiciona o botão Left ao frameadiciona o botão Left ao frameadiciona o botão Left ao frame
30 leftJButton.addActionListener( leftJButton.addActionListener( leftJButton.addActionListener( leftJButton.addActionListener(
32 newnewnewnew Act Act Act ActionListener() ionListener() ionListener() ionListener() // // // // classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
33 { { { {
34 // proces // proces // proces // processa o evento sa o evento sa o evento sa o evento leftJButton leftJButton leftJButton leftJButton
35 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
36 { { { {
Adiciona JButton; FlowLayouttratará o posicionamento
Celso Olivete Júnior 224
37 layout.setAlignment( layout.setAlignment( layout.setAlignment( layout.setAlignment( FlowLayout.LEFTFlowLayout.LEFTFlowLayout.LEFTFlowLayout.LEFT ); ); ); );
39 // reali // reali // reali // realinhanhanhanha os os os os componentcomponentcomponentcomponenteeeessss anexados anexados anexados anexados
40 layout.layoutContainer( container );layout.layoutContainer( container );layout.layoutContainer( container );layout.layoutContainer( container );
41 } } } } // // // // fim do método fim do método fim do método fim do método actionPerformedactionPerformedactionPerformedactionPerformed
42 } } } } // // // // fim da classe interna anônimafim da classe interna anônimafim da classe interna anônimafim da classe interna anônima
43 ); ); ); ); // // // // fim da chamada parafim da chamada parafim da chamada parafim da chamada para addActionListeneraddActionListeneraddActionListeneraddActionListener
45 // // // // configuraconfiguraconfiguraconfigura centerJButton centerJButton centerJButton centerJButton eeee regist regist regist registrararara listener listener listener listener
46 centerJButton = centerJButton = centerJButton = centerJButton = newnewnewnew JButton( JButton( JButton( JButton( "Center""Center""Center""Center" ); ); ); ); // cria botão// cria botão// cria botão// cria botão Center Center Center Center
47 add( centerJButton ); add( centerJButton ); add( centerJButton ); add( centerJButton ); // ad// ad// ad// adicionaicionaicionaiciona botão botão botão botão Center Center Center Center ao ao ao ao frameframeframeframe
48 centerJButton.addAction centerJButton.addAction centerJButton.addAction centerJButton.addActionListener(Listener(Listener(Listener(
50 newnewnewnew ActionListener() ActionListener() ActionListener() ActionListener() // // // // classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
51 { { { {
52 // process // process // process // processa eventoa eventoa eventoa evento centerJButton centerJButton centerJButton centerJButton
53 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
54 { { { {
55 layolayolayolayout.setAlignment( ut.setAlignment( ut.setAlignment( ut.setAlignment( FlowLayout.CENTERFlowLayout.CENTERFlowLayout.CENTERFlowLayout.CENTER ); ); ); );
Configura o alinhamento à esquerda
Ajusta o layout
Introdução à Tecnologia Java – 02/2012
Exemplo27 // // // // configura leftJButton e registra listenerconfigura leftJButton e registra listenerconfigura leftJButton e registra listenerconfigura leftJButton e registra listener
28 leftJButton = leftJButton = leftJButton = leftJButton = newnewnewnew JButton( JButton( JButton( JButton( "Left""Left""Left""Left" ); ); ); ); // cr// cr// cr// criaiaiaia botão botão botão botão LeftLeftLeftLeft
29 add( leftJButton ); add( leftJButton ); add( leftJButton ); add( leftJButton ); // // // // adiciona o botão Left ao frameadiciona o botão Left ao frameadiciona o botão Left ao frameadiciona o botão Left ao frame
30 leftJButton.addActionListener( leftJButton.addActionListener( leftJButton.addActionListener( leftJButton.addActionListener(
32 newnewnewnew Act Act Act ActionListener() ionListener() ionListener() ionListener() // // // // classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
33 { { { {
34 // proces // proces // proces // processa o evento sa o evento sa o evento sa o evento leftJButton leftJButton leftJButton leftJButton
35 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
36 { { { {
Adiciona JButton; FlowLayouttratará o posicionamento
Celso Olivete Júnior 225
37 layout.setAlignment( layout.setAlignment( layout.setAlignment( layout.setAlignment( FlowLayout.LEFTFlowLayout.LEFTFlowLayout.LEFTFlowLayout.LEFT ); ); ); );
39 // reali // reali // reali // realinhanhanhanha os os os os componentcomponentcomponentcomponenteeeessss anexados anexados anexados anexados
40 layout.layoutContainer( container );layout.layoutContainer( container );layout.layoutContainer( container );layout.layoutContainer( container );
41 } } } } // // // // fim do método fim do método fim do método fim do método actionPerformedactionPerformedactionPerformedactionPerformed
42 } } } } // // // // fim da classe interna anônimafim da classe interna anônimafim da classe interna anônimafim da classe interna anônima
43 ); ); ); ); // // // // fim da chamada parafim da chamada parafim da chamada parafim da chamada para addActionListeneraddActionListeneraddActionListeneraddActionListener
45 // // // // configuraconfiguraconfiguraconfigura centerJButton centerJButton centerJButton centerJButton eeee regist regist regist registrararara listener listener listener listener
46 centerJButton = centerJButton = centerJButton = centerJButton = newnewnewnew JButton( JButton( JButton( JButton( "Center""Center""Center""Center" ); ); ); ); // cria botão// cria botão// cria botão// cria botão Center Center Center Center
47 add( centerJButton ); add( centerJButton ); add( centerJButton ); add( centerJButton ); // ad// ad// ad// adicionaicionaicionaiciona botão botão botão botão Center Center Center Center ao ao ao ao frameframeframeframe
48 centerJButton.addAction centerJButton.addAction centerJButton.addAction centerJButton.addActionListener(Listener(Listener(Listener(
50 newnewnewnew ActionListener() ActionListener() ActionListener() ActionListener() // // // // classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
51 { { { {
52 // process // process // process // processa eventoa eventoa eventoa evento centerJButton centerJButton centerJButton centerJButton
53 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
54 { { { {
55 layolayolayolayout.setAlignment( ut.setAlignment( ut.setAlignment( ut.setAlignment( FlowLayout.CENTERFlowLayout.CENTERFlowLayout.CENTERFlowLayout.CENTER ); ); ); );
Configura o alinhamento à esquerda
Ajusta o layout
Adiciona JButton; FlowLayouttratará o posicionamento
Introdução à Tecnologia Java – 02/2012
Exemplo27 // // // // configura leftJButton e registra listenerconfigura leftJButton e registra listenerconfigura leftJButton e registra listenerconfigura leftJButton e registra listener
28 leftJButton = leftJButton = leftJButton = leftJButton = newnewnewnew JButton( JButton( JButton( JButton( "Left""Left""Left""Left" ); ); ); ); // cr// cr// cr// criaiaiaia botão botão botão botão LeftLeftLeftLeft
29 add( leftJButton ); add( leftJButton ); add( leftJButton ); add( leftJButton ); // // // // adiciona o botão Left ao frameadiciona o botão Left ao frameadiciona o botão Left ao frameadiciona o botão Left ao frame
30 leftJButton.addActionListener( leftJButton.addActionListener( leftJButton.addActionListener( leftJButton.addActionListener(
32 newnewnewnew Act Act Act ActionListener() ionListener() ionListener() ionListener() // // // // classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
33 { { { {
34 // proces // proces // proces // processa o evento sa o evento sa o evento sa o evento leftJButton leftJButton leftJButton leftJButton
35 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
36 { { { {
Adiciona JButton; FlowLayouttratará o posicionamento
Celso Olivete Júnior 226
37 layout.setAlignment( layout.setAlignment( layout.setAlignment( layout.setAlignment( FlowLayout.LEFTFlowLayout.LEFTFlowLayout.LEFTFlowLayout.LEFT ); ); ); );
39 // reali // reali // reali // realinhanhanhanha os os os os componentcomponentcomponentcomponenteeeessss anexados anexados anexados anexados
40 layout.layoutContainer( container );layout.layoutContainer( container );layout.layoutContainer( container );layout.layoutContainer( container );
41 } } } } // // // // fim do método fim do método fim do método fim do método actionPerformedactionPerformedactionPerformedactionPerformed
42 } } } } // // // // fim da classe interna anônimafim da classe interna anônimafim da classe interna anônimafim da classe interna anônima
43 ); ); ); ); // // // // fim da chamada parafim da chamada parafim da chamada parafim da chamada para addActionListeneraddActionListeneraddActionListeneraddActionListener
45 // // // // configuraconfiguraconfiguraconfigura centerJButton centerJButton centerJButton centerJButton eeee regist regist regist registrararara listener listener listener listener
46 centerJButton = centerJButton = centerJButton = centerJButton = newnewnewnew JButton( JButton( JButton( JButton( "Center""Center""Center""Center" ); ); ); ); // cria botão// cria botão// cria botão// cria botão Center Center Center Center
47 add( centerJButton ); add( centerJButton ); add( centerJButton ); add( centerJButton ); // ad// ad// ad// adicionaicionaicionaiciona botão botão botão botão Center Center Center Center ao ao ao ao frameframeframeframe
48 centerJButton.addAction centerJButton.addAction centerJButton.addAction centerJButton.addActionListener(Listener(Listener(Listener(
50 newnewnewnew ActionListener() ActionListener() ActionListener() ActionListener() // // // // classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
51 { { { {
52 // process // process // process // processa eventoa eventoa eventoa evento centerJButton centerJButton centerJButton centerJButton
53 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
54 { { { {
55 layolayolayolayout.setAlignment( ut.setAlignment( ut.setAlignment( ut.setAlignment( FlowLayout.CENTERFlowLayout.CENTERFlowLayout.CENTERFlowLayout.CENTER ); ); ); );
Configura o alinhamento à esquerda
Ajusta o layout
Adiciona JButton; FlowLayouttratará o posicionamento
Configura o alinhamento no centro
Introdução à Tecnologia Java – 02/2012
Exemplo57 // reali // reali // reali // realinnnnha os componentes anexadosha os componentes anexadosha os componentes anexadosha os componentes anexados
58 layout.layoutContainer( container );layout.layoutContainer( container );layout.layoutContainer( container );layout.layoutContainer( container );
59 } } } } // // // // fim do métodofim do métodofim do métodofim do método actionPerformedactionPerformedactionPerformedactionPerformed
60 } } } } // // // // ffffim da classe interna anim da classe interna anim da classe interna anim da classe interna anônimaônimaônimaônima
61 ); ); ); ); // // // // ffffim da chamada paraim da chamada paraim da chamada paraim da chamada para addActionListener addActionListener addActionListener addActionListener
62
63 // // // // cccconfiguraonfiguraonfiguraonfigura rightJButton rightJButton rightJButton rightJButton eeee regist regist regist registrrrraaaa listener listener listener listener
64 rightJButton = rightJButton = rightJButton = rightJButton = newnewnewnew JButton( JButton( JButton( JButton( "Right" "Right" "Right" "Right" ); ); ); ); // cr// cr// cr// criiiiaaaa botbotbotbotão ão ão ão RightRightRightRight
65 add( rightJButton ); add( rightJButton ); add( rightJButton ); add( rightJButton ); // ad// ad// ad// adiiiicionacionacionaciona botbotbotbotão ão ão ão Right Right Right Right aaaaoooo frame frame frame frame
66 rightJButton.addActionListener( rightJButton.addActionListener( rightJButton.addActionListener( rightJButton.addActionListener(
Ajusta o layout
Celso Olivete Júnior 227
66 rightJButton.addActionListener( rightJButton.addActionListener( rightJButton.addActionListener( rightJButton.addActionListener(
67
68 newnewnewnew A A A ActionListener() ctionListener() ctionListener() ctionListener() // // // // classe classe classe classe interna interna interna interna ananananônimaônimaônimaônima
69 { { { {
70 // process // process // process // processa o eventoa o eventoa o eventoa o evento rightJButton rightJButton rightJButton rightJButton
71 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
72 { { { {
73 layout.setAlignment( layout.setAlignment( layout.setAlignment( layout.setAlignment( FlowLayout.RIGHTFlowLayout.RIGHTFlowLayout.RIGHTFlowLayout.RIGHT ); ); ); );
74
75 // reali // reali // reali // realinnnnha os componentesha os componentesha os componentesha os componentes anexadosanexadosanexadosanexados
76 layout.layoutContainer( container );layout.layoutContainer( container );layout.layoutContainer( container );layout.layoutContainer( container );
77 } } } } // // // // fim do métodofim do métodofim do métodofim do método actionPerformedactionPerformedactionPerformedactionPerformed
78 } } } } // // // // ffffim daim daim daim da classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
79 ); ); ); ); // // // // ffffim da chamada para im da chamada para im da chamada para im da chamada para addActionListeneraddActionListeneraddActionListeneraddActionListener
80 } } } } // // // // ffffim do construtorim do construtorim do construtorim do construtor FlowLayoutFrame FlowLayoutFrame FlowLayoutFrame FlowLayoutFrame
81 } } } } // // // // fim da classefim da classefim da classefim da classe FlowLayoutFrameFlowLayoutFrameFlowLayoutFrameFlowLayoutFrame
Introdução à Tecnologia Java – 02/2012
Exemplo57 // reali // reali // reali // realinnnnha os componentes anexadosha os componentes anexadosha os componentes anexadosha os componentes anexados
58 layout.layoutContainer( container );layout.layoutContainer( container );layout.layoutContainer( container );layout.layoutContainer( container );
59 } } } } // // // // fim do métodofim do métodofim do métodofim do método actionPerformedactionPerformedactionPerformedactionPerformed
60 } } } } // // // // ffffim da classe interna anim da classe interna anim da classe interna anim da classe interna anônimaônimaônimaônima
61 ); ); ); ); // // // // ffffim da chamada paraim da chamada paraim da chamada paraim da chamada para addActionListener addActionListener addActionListener addActionListener
62
63 // // // // cccconfiguraonfiguraonfiguraonfigura rightJButton rightJButton rightJButton rightJButton eeee regist regist regist registrrrraaaa listener listener listener listener
64 rightJButton = rightJButton = rightJButton = rightJButton = newnewnewnew JButton( JButton( JButton( JButton( "Right" "Right" "Right" "Right" ); ); ); ); // cr// cr// cr// criiiiaaaa botbotbotbotão ão ão ão RightRightRightRight
65 add( rightJButton ); add( rightJButton ); add( rightJButton ); add( rightJButton ); // ad// ad// ad// adiiiicionacionacionaciona botbotbotbotão ão ão ão Right Right Right Right aaaaoooo frame frame frame frame
66 rightJButton.addActionListener( rightJButton.addActionListener( rightJButton.addActionListener( rightJButton.addActionListener(
Ajusta o layout
Adiciona ;
Celso Olivete Júnior 228
66 rightJButton.addActionListener( rightJButton.addActionListener( rightJButton.addActionListener( rightJButton.addActionListener(
67
68 newnewnewnew A A A ActionListener() ctionListener() ctionListener() ctionListener() // // // // classe classe classe classe interna interna interna interna ananananônimaônimaônimaônima
69 { { { {
70 // process // process // process // processa o eventoa o eventoa o eventoa o evento rightJButton rightJButton rightJButton rightJButton
71 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
72 { { { {
73 layout.setAlignment( layout.setAlignment( layout.setAlignment( layout.setAlignment( FlowLayout.RIGHTFlowLayout.RIGHTFlowLayout.RIGHTFlowLayout.RIGHT ); ); ); );
74
75 // reali // reali // reali // realinnnnha os componentesha os componentesha os componentesha os componentes anexadosanexadosanexadosanexados
76 layout.layoutContainer( container );layout.layoutContainer( container );layout.layoutContainer( container );layout.layoutContainer( container );
77 } } } } // // // // fim do métodofim do métodofim do métodofim do método actionPerformedactionPerformedactionPerformedactionPerformed
78 } } } } // // // // ffffim daim daim daim da classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
79 ); ); ); ); // // // // ffffim da chamada para im da chamada para im da chamada para im da chamada para addActionListeneraddActionListeneraddActionListeneraddActionListener
80 } } } } // // // // ffffim do construtorim do construtorim do construtorim do construtor FlowLayoutFrame FlowLayoutFrame FlowLayoutFrame FlowLayoutFrame
81 } } } } // // // // fim da classefim da classefim da classefim da classe FlowLayoutFrameFlowLayoutFrameFlowLayoutFrameFlowLayoutFrame
Adiciona JButton; FlowLayouttratará o posicionamento
Introdução à Tecnologia Java – 02/2012
Exemplo57 // reali // reali // reali // realinnnnha os componentes anexadosha os componentes anexadosha os componentes anexadosha os componentes anexados
58 layout.layoutContainer( container );layout.layoutContainer( container );layout.layoutContainer( container );layout.layoutContainer( container );
59 } } } } // // // // fim do métodofim do métodofim do métodofim do método actionPerformedactionPerformedactionPerformedactionPerformed
60 } } } } // // // // ffffim da classe interna anim da classe interna anim da classe interna anim da classe interna anônimaônimaônimaônima
61 ); ); ); ); // // // // ffffim da chamada paraim da chamada paraim da chamada paraim da chamada para addActionListener addActionListener addActionListener addActionListener
62
63 // // // // cccconfiguraonfiguraonfiguraonfigura rightJButton rightJButton rightJButton rightJButton eeee regist regist regist registrrrraaaa listener listener listener listener
64 rightJButton = rightJButton = rightJButton = rightJButton = newnewnewnew JButton( JButton( JButton( JButton( "Right" "Right" "Right" "Right" ); ); ); ); // cr// cr// cr// criiiiaaaa botbotbotbotão ão ão ão RightRightRightRight
65 add( rightJButton ); add( rightJButton ); add( rightJButton ); add( rightJButton ); // ad// ad// ad// adiiiicionacionacionaciona botbotbotbotão ão ão ão Right Right Right Right aaaaoooo frame frame frame frame
66 rightJButton.addActionListener( rightJButton.addActionListener( rightJButton.addActionListener( rightJButton.addActionListener(
Ajusta o layout
Adiciona ;
Celso Olivete Júnior 229
66 rightJButton.addActionListener( rightJButton.addActionListener( rightJButton.addActionListener( rightJButton.addActionListener(
67
68 newnewnewnew A A A ActionListener() ctionListener() ctionListener() ctionListener() // // // // classe classe classe classe interna interna interna interna ananananônimaônimaônimaônima
69 { { { {
70 // process // process // process // processa o eventoa o eventoa o eventoa o evento rightJButton rightJButton rightJButton rightJButton
71 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
72 { { { {
73 layout.setAlignment( layout.setAlignment( layout.setAlignment( layout.setAlignment( FlowLayout.RIGHTFlowLayout.RIGHTFlowLayout.RIGHTFlowLayout.RIGHT ); ); ); );
74
75 // reali // reali // reali // realinnnnha os componentesha os componentesha os componentesha os componentes anexadosanexadosanexadosanexados
76 layout.layoutContainer( container );layout.layoutContainer( container );layout.layoutContainer( container );layout.layoutContainer( container );
77 } } } } // // // // fim do métodofim do métodofim do métodofim do método actionPerformedactionPerformedactionPerformedactionPerformed
78 } } } } // // // // ffffim daim daim daim da classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
79 ); ); ); ); // // // // ffffim da chamada para im da chamada para im da chamada para im da chamada para addActionListeneraddActionListeneraddActionListeneraddActionListener
80 } } } } // // // // ffffim do construtorim do construtorim do construtorim do construtor FlowLayoutFrame FlowLayoutFrame FlowLayoutFrame FlowLayoutFrame
81 } } } } // // // // fim da classefim da classefim da classefim da classe FlowLayoutFrameFlowLayoutFrameFlowLayoutFrameFlowLayoutFrame
Adiciona JButton; FlowLayouttratará o posicionamento
Configura o alinhamento à direita
Introdução à Tecnologia Java – 02/2012
Exemplo57 // reali // reali // reali // realinnnnha os componentes anexadosha os componentes anexadosha os componentes anexadosha os componentes anexados
58 layout.layoutContainer( container );layout.layoutContainer( container );layout.layoutContainer( container );layout.layoutContainer( container );
59 } } } } // // // // fim do métodofim do métodofim do métodofim do método actionPerformedactionPerformedactionPerformedactionPerformed
60 } } } } // // // // ffffim da classe interna anim da classe interna anim da classe interna anim da classe interna anônimaônimaônimaônima
61 ); ); ); ); // // // // ffffim da chamada paraim da chamada paraim da chamada paraim da chamada para addActionListener addActionListener addActionListener addActionListener
62
63 // // // // cccconfiguraonfiguraonfiguraonfigura rightJButton rightJButton rightJButton rightJButton eeee regist regist regist registrrrraaaa listener listener listener listener
64 rightJButton = rightJButton = rightJButton = rightJButton = newnewnewnew JButton( JButton( JButton( JButton( "Right" "Right" "Right" "Right" ); ); ); ); // cr// cr// cr// criiiiaaaa botbotbotbotão ão ão ão RightRightRightRight
65 add( rightJButton ); add( rightJButton ); add( rightJButton ); add( rightJButton ); // ad// ad// ad// adiiiicionacionacionaciona botbotbotbotão ão ão ão Right Right Right Right aaaaoooo frame frame frame frame
66 rightJButton.addActionListener( rightJButton.addActionListener( rightJButton.addActionListener( rightJButton.addActionListener(
Ajusta o layout
Adiciona ;
Celso Olivete Júnior 230
66 rightJButton.addActionListener( rightJButton.addActionListener( rightJButton.addActionListener( rightJButton.addActionListener(
67
68 newnewnewnew A A A ActionListener() ctionListener() ctionListener() ctionListener() // // // // classe classe classe classe interna interna interna interna ananananônimaônimaônimaônima
69 { { { {
70 // process // process // process // processa o eventoa o eventoa o eventoa o evento rightJButton rightJButton rightJButton rightJButton
71 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
72 { { { {
73 layout.setAlignment( layout.setAlignment( layout.setAlignment( layout.setAlignment( FlowLayout.RIGHTFlowLayout.RIGHTFlowLayout.RIGHTFlowLayout.RIGHT ); ); ); );
74
75 // reali // reali // reali // realinnnnha os componentesha os componentesha os componentesha os componentes anexadosanexadosanexadosanexados
76 layout.layoutContainer( container );layout.layoutContainer( container );layout.layoutContainer( container );layout.layoutContainer( container );
77 } } } } // // // // fim do métodofim do métodofim do métodofim do método actionPerformedactionPerformedactionPerformedactionPerformed
78 } } } } // // // // ffffim daim daim daim da classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
79 ); ); ); ); // // // // ffffim da chamada para im da chamada para im da chamada para im da chamada para addActionListeneraddActionListeneraddActionListeneraddActionListener
80 } } } } // // // // ffffim do construtorim do construtorim do construtorim do construtor FlowLayoutFrame FlowLayoutFrame FlowLayoutFrame FlowLayoutFrame
81 } } } } // // // // fim da classefim da classefim da classefim da classe FlowLayoutFrameFlowLayoutFrameFlowLayoutFrameFlowLayoutFrame
Adiciona JButton; FlowLayouttratará o posicionamento
Configura o alinhamento à direita
Ajusta o layout
Introdução à Tecnologia Java – 02/2012
Exemplo 1 // Fig. 11.40: FlowLayoutDemo.java// Fig. 11.40: FlowLayoutDemo.java// Fig. 11.40: FlowLayoutDemo.java// Fig. 11.40: FlowLayoutDemo.java
2 // Test// Test// Test// Testaaaandondondondo FlowLayoutFrame. FlowLayoutFrame. FlowLayoutFrame. FlowLayoutFrame.
3 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
4
5 publicpublicpublicpublic classclassclassclass FlowLayoutDemo FlowLayoutDemo FlowLayoutDemo FlowLayoutDemo
6 {{{{
7 publicpublicpublicpublic staticstaticstaticstatic voidvoidvoidvoid main( String args[] ) main( String args[] ) main( String args[] ) main( String args[] )
8 { { { {
Celso Olivete Júnior 231
9 FlowLayoutFrame flowLayoutFrame = FlowLayoutFrame flowLayoutFrame = FlowLayoutFrame flowLayoutFrame = FlowLayoutFrame flowLayoutFrame = newnewnewnew FlowLa FlowLa FlowLa FlowLayoutFrame(); youtFrame(); youtFrame(); youtFrame();
10 flowLayoutFrame.setDefaultCloseOperation( flowLayoutFrame.setDefaultCloseOperation( flowLayoutFrame.setDefaultCloseOperation( flowLayoutFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSE ); ); ); );
11 flowLayoutFrame.setSize( flowLayoutFrame.setSize( flowLayoutFrame.setSize( flowLayoutFrame.setSize( 300300300300, , , , 75757575 ); ); ); ); // // // // cccconfigura o tamanho doonfigura o tamanho doonfigura o tamanho doonfigura o tamanho do frame frame frame frame
12 flowLayoutFrame.setVisible( flowLayoutFrame.setVisible( flowLayoutFrame.setVisible( flowLayoutFrame.setVisible( truetruetruetrue ); ); ); ); // // // // eeeexibe o xibe o xibe o xibe o frfrfrfraaaamemememe
13 } } } } // // // // ffffim dim dim dim de e e e mainmainmainmain
14 } } } } // // // // ffffim da classeim da classeim da classeim da classe FlowLayoutDemo FlowLayoutDemo FlowLayoutDemo FlowLayoutDemo
Introdução à Tecnologia Java – 02/2012
Exemplo
Celso Olivete Júnior 232
Introdução à Tecnologia Java – 02/2012
BorderLayout
• Organiza os componentes em cinco regiões —
norte, sul, leste, oeste e centro.
•Implementa a interface LayoutManager2.
•Fornece o espaçamento da lacuna horizontal e o
espaçamento da lacuna vertical.
Celso Olivete Júnior 233
Introdução à Tecnologia Java – 02/2012
Observação
• Se nenhuma região for especificada ao
adicionar um Component para um
BorderLayout, o gerenciador de layoutBorderLayout, o gerenciador de layout
assume que o Component deve ser adicionado
à região BorderLayout.CENTER.
Celso Olivete Júnior 234
Introdução à Tecnologia Java – 02/2012
Exemplo 3 importimportimportimport java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout;
4 importimportimportimport java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener;
5 importimportimportimport java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent;
6 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
7 importimportimportimport javax.swing.JButton; javax.swing.JButton; javax.swing.JButton; javax.swing.JButton;
9 publicpublicpublicpublic classclassclassclass BorderLayoutFrame BorderLayoutFrame BorderLayoutFrame BorderLayoutFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame implementsimplementsimplementsimplements ActionListener ActionListener ActionListener ActionListener
10 {{{{
11 privateprivateprivateprivate JButton buttons[]; JButton buttons[]; JButton buttons[]; JButton buttons[]; // array // array // array // array de botões para ocultar partesde botões para ocultar partesde botões para ocultar partesde botões para ocultar partes
12 privateprivateprivateprivate finalfinalfinalfinal String names[] = { String names[] = { String names[] = { String names[] = { "Hide North""Hide North""Hide North""Hide North", , , , "Hide South""Hide South""Hide South""Hide South", , , ,
13 "Hide East""Hide East""Hide East""Hide East", , , , "H"H"H"Hide West"ide West"ide West"ide West", , , , "Hide Center""Hide Center""Hide Center""Hide Center" }; }; }; };
Celso Olivete Júnior 235
13 "Hide East""Hide East""Hide East""Hide East", , , , "H"H"H"Hide West"ide West"ide West"ide West", , , , "Hide Center""Hide Center""Hide Center""Hide Center" }; }; }; };
14 privateprivateprivateprivate BorderLayout layout; BorderLayout layout; BorderLayout layout; BorderLayout layout; // // // // objeto borderlayoutobjeto borderlayoutobjeto borderlayoutobjeto borderlayout
16 // // // // configura GUI e tratamento de eventoconfigura GUI e tratamento de eventoconfigura GUI e tratamento de eventoconfigura GUI e tratamento de evento
17 publicpublicpublicpublic BorderLayoutFrame() BorderLayoutFrame() BorderLayoutFrame() BorderLayoutFrame()
18 { { { {
19 supersupersupersuper( ( ( ( "BorderLayout Demo""BorderLayout Demo""BorderLayout Demo""BorderLayout Demo" ); ); ); );
20
21 layout = layout = layout = layout = nenenenewwww BorderLayout( BorderLayout( BorderLayout( BorderLayout( 5555, , , , 5555 ); ); ); ); // 5 pixel gaps// 5 pixel gaps// 5 pixel gaps// 5 pixel gaps
22 setLayout( layout ); setLayout( layout ); setLayout( layout ); setLayout( layout ); // // // // configura o layout de frameconfigura o layout de frameconfigura o layout de frameconfigura o layout de frame
23 buttons = buttons = buttons = buttons = newnewnewnew JButton[ names.length ]; JButton[ names.length ]; JButton[ names.length ]; JButton[ names.length ]; // // // // configura o tamanho do arrayconfigura o tamanho do arrayconfigura o tamanho do arrayconfigura o tamanho do array
25 // // // // cria JButtons e registra cria JButtons e registra cria JButtons e registra cria JButtons e registra listenerslistenerslistenerslisteners para el para el para el para eleseseses
26 forforforfor ( ( ( ( intintintint count = count = count = count = 0000; count < names.length; count++ ) ; count < names.length; count++ ) ; count < names.length; count++ ) ; count < names.length; count++ )
27 { { { {
28 buttons[ count ] = buttons[ count ] = buttons[ count ] = buttons[ count ] = newnewnewnew JButton( names[ count ] ); JButton( names[ count ] ); JButton( names[ count ] ); JButton( names[ count ] );
29 buttons[ count ].addActionListener( buttons[ count ].addActionListener( buttons[ count ].addActionListener( buttons[ count ].addActionListener( thisthisthisthis ); ); ); );
30 } } } } // // // // fim de fim de fim de fim de forforforfor
Introdução à Tecnologia Java – 02/2012
Exemplo 3 importimportimportimport java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout;
4 importimportimportimport java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener;
5 importimportimportimport java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent;
6 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
7 importimportimportimport javax.swing.JButton; javax.swing.JButton; javax.swing.JButton; javax.swing.JButton;
9 publicpublicpublicpublic classclassclassclass BorderLayoutFrame BorderLayoutFrame BorderLayoutFrame BorderLayoutFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame implementsimplementsimplementsimplements ActionListener ActionListener ActionListener ActionListener
10 {{{{
11 privateprivateprivateprivate JButton buttons[]; JButton buttons[]; JButton buttons[]; JButton buttons[]; // array // array // array // array de botões para ocultar partesde botões para ocultar partesde botões para ocultar partesde botões para ocultar partes
12 privateprivateprivateprivate finalfinalfinalfinal String names[] = { String names[] = { String names[] = { String names[] = { "Hide North""Hide North""Hide North""Hide North", , , , "Hide South""Hide South""Hide South""Hide South", , , ,
13 "Hide East""Hide East""Hide East""Hide East", , , , "H"H"H"Hide West"ide West"ide West"ide West", , , , "Hide Center""Hide Center""Hide Center""Hide Center" }; }; }; };
Celso Olivete Júnior 236
13 "Hide East""Hide East""Hide East""Hide East", , , , "H"H"H"Hide West"ide West"ide West"ide West", , , , "Hide Center""Hide Center""Hide Center""Hide Center" }; }; }; };
14 privateprivateprivateprivate BorderLayout layout; BorderLayout layout; BorderLayout layout; BorderLayout layout; // // // // objeto borderlayoutobjeto borderlayoutobjeto borderlayoutobjeto borderlayout
16 // // // // configura GUI e tratamento de eventoconfigura GUI e tratamento de eventoconfigura GUI e tratamento de eventoconfigura GUI e tratamento de evento
17 publicpublicpublicpublic BorderLayoutFrame() BorderLayoutFrame() BorderLayoutFrame() BorderLayoutFrame()
18 { { { {
19 supersupersupersuper( ( ( ( "BorderLayout Demo""BorderLayout Demo""BorderLayout Demo""BorderLayout Demo" ); ); ); );
20
21 layout = layout = layout = layout = nenenenewwww BorderLayout( BorderLayout( BorderLayout( BorderLayout( 5555, , , , 5555 ); ); ); ); // 5 pixel gaps// 5 pixel gaps// 5 pixel gaps// 5 pixel gaps
22 setLayout( layout ); setLayout( layout ); setLayout( layout ); setLayout( layout ); // // // // configura o layout de frameconfigura o layout de frameconfigura o layout de frameconfigura o layout de frame
23 buttons = buttons = buttons = buttons = newnewnewnew JButton[ names.length ]; JButton[ names.length ]; JButton[ names.length ]; JButton[ names.length ]; // // // // configura o tamanho do arrayconfigura o tamanho do arrayconfigura o tamanho do arrayconfigura o tamanho do array
25 // // // // cria JButtons e registra cria JButtons e registra cria JButtons e registra cria JButtons e registra listenerslistenerslistenerslisteners para el para el para el para eleseseses
26 forforforfor ( ( ( ( intintintint count = count = count = count = 0000; count < names.length; count++ ) ; count < names.length; count++ ) ; count < names.length; count++ ) ; count < names.length; count++ )
27 { { { {
28 buttons[ count ] = buttons[ count ] = buttons[ count ] = buttons[ count ] = newnewnewnew JButton( names[ count ] ); JButton( names[ count ] ); JButton( names[ count ] ); JButton( names[ count ] );
29 buttons[ count ].addActionListener( buttons[ count ].addActionListener( buttons[ count ].addActionListener( buttons[ count ].addActionListener( thisthisthisthis ); ); ); );
30 } } } } // // // // fim de fim de fim de fim de forforforfor
Declara a variável de instância BorderLayout
Introdução à Tecnologia Java – 02/2012
Exemplo 3 importimportimportimport java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout;
4 importimportimportimport java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener;
5 importimportimportimport java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent;
6 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
7 importimportimportimport javax.swing.JButton; javax.swing.JButton; javax.swing.JButton; javax.swing.JButton;
9 publicpublicpublicpublic classclassclassclass BorderLayoutFrame BorderLayoutFrame BorderLayoutFrame BorderLayoutFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame implementsimplementsimplementsimplements ActionListener ActionListener ActionListener ActionListener
10 {{{{
11 privateprivateprivateprivate JButton buttons[]; JButton buttons[]; JButton buttons[]; JButton buttons[]; // array // array // array // array de botões para ocultar partesde botões para ocultar partesde botões para ocultar partesde botões para ocultar partes
12 privateprivateprivateprivate finalfinalfinalfinal String names[] = { String names[] = { String names[] = { String names[] = { "Hide North""Hide North""Hide North""Hide North", , , , "Hide South""Hide South""Hide South""Hide South", , , ,
13 "Hide East""Hide East""Hide East""Hide East", , , , "H"H"H"Hide West"ide West"ide West"ide West", , , , "Hide Center""Hide Center""Hide Center""Hide Center" }; }; }; };
Celso Olivete Júnior 237
13 "Hide East""Hide East""Hide East""Hide East", , , , "H"H"H"Hide West"ide West"ide West"ide West", , , , "Hide Center""Hide Center""Hide Center""Hide Center" }; }; }; };
14 privateprivateprivateprivate BorderLayout layout; BorderLayout layout; BorderLayout layout; BorderLayout layout; // // // // objeto borderlayoutobjeto borderlayoutobjeto borderlayoutobjeto borderlayout
16 // // // // configura GUI e tratamento de eventoconfigura GUI e tratamento de eventoconfigura GUI e tratamento de eventoconfigura GUI e tratamento de evento
17 publicpublicpublicpublic BorderLayoutFrame() BorderLayoutFrame() BorderLayoutFrame() BorderLayoutFrame()
18 { { { {
19 supersupersupersuper( ( ( ( "BorderLayout Demo""BorderLayout Demo""BorderLayout Demo""BorderLayout Demo" ); ); ); );
20
21 layout = layout = layout = layout = nenenenewwww BorderLayout( BorderLayout( BorderLayout( BorderLayout( 5555, , , , 5555 ); ); ); ); // 5 pixel gaps// 5 pixel gaps// 5 pixel gaps// 5 pixel gaps
22 setLayout( layout ); setLayout( layout ); setLayout( layout ); setLayout( layout ); // // // // configura o layout de frameconfigura o layout de frameconfigura o layout de frameconfigura o layout de frame
23 buttons = buttons = buttons = buttons = newnewnewnew JButton[ names.length ]; JButton[ names.length ]; JButton[ names.length ]; JButton[ names.length ]; // // // // configura o tamanho do arrayconfigura o tamanho do arrayconfigura o tamanho do arrayconfigura o tamanho do array
25 // // // // cria JButtons e registra cria JButtons e registra cria JButtons e registra cria JButtons e registra listenerslistenerslistenerslisteners para el para el para el para eleseseses
26 forforforfor ( ( ( ( intintintint count = count = count = count = 0000; count < names.length; count++ ) ; count < names.length; count++ ) ; count < names.length; count++ ) ; count < names.length; count++ )
27 { { { {
28 buttons[ count ] = buttons[ count ] = buttons[ count ] = buttons[ count ] = newnewnewnew JButton( names[ count ] ); JButton( names[ count ] ); JButton( names[ count ] ); JButton( names[ count ] );
29 buttons[ count ].addActionListener( buttons[ count ].addActionListener( buttons[ count ].addActionListener( buttons[ count ].addActionListener( thisthisthisthis ); ); ); );
30 } } } } // // // // fim de fim de fim de fim de forforforfor
Declara a variável de instância BorderLayout
Cria BorderLayout
Introdução à Tecnologia Java – 02/2012
Exemplo 3 importimportimportimport java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout;
4 importimportimportimport java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener;
5 importimportimportimport java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent;
6 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
7 importimportimportimport javax.swing.JButton; javax.swing.JButton; javax.swing.JButton; javax.swing.JButton;
9 publicpublicpublicpublic classclassclassclass BorderLayoutFrame BorderLayoutFrame BorderLayoutFrame BorderLayoutFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame implementsimplementsimplementsimplements ActionListener ActionListener ActionListener ActionListener
10 {{{{
11 privateprivateprivateprivate JButton buttons[]; JButton buttons[]; JButton buttons[]; JButton buttons[]; // array // array // array // array de botões para ocultar partesde botões para ocultar partesde botões para ocultar partesde botões para ocultar partes
12 privateprivateprivateprivate finalfinalfinalfinal String names[] = { String names[] = { String names[] = { String names[] = { "Hide North""Hide North""Hide North""Hide North", , , , "Hide South""Hide South""Hide South""Hide South", , , ,
13 "Hide East""Hide East""Hide East""Hide East", , , , "H"H"H"Hide West"ide West"ide West"ide West", , , , "Hide Center""Hide Center""Hide Center""Hide Center" }; }; }; };
Celso Olivete Júnior 238
13 "Hide East""Hide East""Hide East""Hide East", , , , "H"H"H"Hide West"ide West"ide West"ide West", , , , "Hide Center""Hide Center""Hide Center""Hide Center" }; }; }; };
14 privateprivateprivateprivate BorderLayout layout; BorderLayout layout; BorderLayout layout; BorderLayout layout; // // // // objeto borderlayoutobjeto borderlayoutobjeto borderlayoutobjeto borderlayout
16 // // // // configura GUI e tratamento de eventoconfigura GUI e tratamento de eventoconfigura GUI e tratamento de eventoconfigura GUI e tratamento de evento
17 publicpublicpublicpublic BorderLayoutFrame() BorderLayoutFrame() BorderLayoutFrame() BorderLayoutFrame()
18 { { { {
19 supersupersupersuper( ( ( ( "BorderLayout Demo""BorderLayout Demo""BorderLayout Demo""BorderLayout Demo" ); ); ); );
20
21 layout = layout = layout = layout = nenenenewwww BorderLayout( BorderLayout( BorderLayout( BorderLayout( 5555, , , , 5555 ); ); ); ); // 5 pixel gaps// 5 pixel gaps// 5 pixel gaps// 5 pixel gaps
22 setLayout( layout ); setLayout( layout ); setLayout( layout ); setLayout( layout ); // // // // configura o layout de frameconfigura o layout de frameconfigura o layout de frameconfigura o layout de frame
23 buttons = buttons = buttons = buttons = newnewnewnew JButton[ names.length ]; JButton[ names.length ]; JButton[ names.length ]; JButton[ names.length ]; // // // // configura o tamanho do arrayconfigura o tamanho do arrayconfigura o tamanho do arrayconfigura o tamanho do array
25 // // // // cria JButtons e registra cria JButtons e registra cria JButtons e registra cria JButtons e registra listenerslistenerslistenerslisteners para el para el para el para eleseseses
26 forforforfor ( ( ( ( intintintint count = count = count = count = 0000; count < names.length; count++ ) ; count < names.length; count++ ) ; count < names.length; count++ ) ; count < names.length; count++ )
27 { { { {
28 buttons[ count ] = buttons[ count ] = buttons[ count ] = buttons[ count ] = newnewnewnew JButton( names[ count ] ); JButton( names[ count ] ); JButton( names[ count ] ); JButton( names[ count ] );
29 buttons[ count ].addActionListener( buttons[ count ].addActionListener( buttons[ count ].addActionListener( buttons[ count ].addActionListener( thisthisthisthis ); ); ); );
30 } } } } // // // // fim de fim de fim de fim de forforforfor
Declara a variável de instância BorderLayout
Cria BorderLayout
Configura o layout
Introdução à Tecnologia Java – 02/2012
Exemplo 3 importimportimportimport java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout;
4 importimportimportimport java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener;
5 importimportimportimport java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent;
6 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
7 importimportimportimport javax.swing.JButton; javax.swing.JButton; javax.swing.JButton; javax.swing.JButton;
9 publicpublicpublicpublic classclassclassclass BorderLayoutFrame BorderLayoutFrame BorderLayoutFrame BorderLayoutFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame implementsimplementsimplementsimplements ActionListener ActionListener ActionListener ActionListener
10 {{{{
11 privateprivateprivateprivate JButton buttons[]; JButton buttons[]; JButton buttons[]; JButton buttons[]; // array // array // array // array de botões para ocultar partesde botões para ocultar partesde botões para ocultar partesde botões para ocultar partes
12 privateprivateprivateprivate finalfinalfinalfinal String names[] = { String names[] = { String names[] = { String names[] = { "Hide North""Hide North""Hide North""Hide North", , , , "Hide South""Hide South""Hide South""Hide South", , , ,
13 "Hide East""Hide East""Hide East""Hide East", , , , "H"H"H"Hide West"ide West"ide West"ide West", , , , "Hide Center""Hide Center""Hide Center""Hide Center" }; }; }; };
Celso Olivete Júnior 239
13 "Hide East""Hide East""Hide East""Hide East", , , , "H"H"H"Hide West"ide West"ide West"ide West", , , , "Hide Center""Hide Center""Hide Center""Hide Center" }; }; }; };
14 privateprivateprivateprivate BorderLayout layout; BorderLayout layout; BorderLayout layout; BorderLayout layout; // // // // objeto borderlayoutobjeto borderlayoutobjeto borderlayoutobjeto borderlayout
16 // // // // configura GUI e tratamento de eventoconfigura GUI e tratamento de eventoconfigura GUI e tratamento de eventoconfigura GUI e tratamento de evento
17 publicpublicpublicpublic BorderLayoutFrame() BorderLayoutFrame() BorderLayoutFrame() BorderLayoutFrame()
18 { { { {
19 supersupersupersuper( ( ( ( "BorderLayout Demo""BorderLayout Demo""BorderLayout Demo""BorderLayout Demo" ); ); ); );
20
21 layout = layout = layout = layout = nenenenewwww BorderLayout( BorderLayout( BorderLayout( BorderLayout( 5555, , , , 5555 ); ); ); ); // 5 pixel gaps// 5 pixel gaps// 5 pixel gaps// 5 pixel gaps
22 setLayout( layout ); setLayout( layout ); setLayout( layout ); setLayout( layout ); // // // // configura o layout de frameconfigura o layout de frameconfigura o layout de frameconfigura o layout de frame
23 buttons = buttons = buttons = buttons = newnewnewnew JButton[ names.length ]; JButton[ names.length ]; JButton[ names.length ]; JButton[ names.length ]; // // // // configura o tamanho do arrayconfigura o tamanho do arrayconfigura o tamanho do arrayconfigura o tamanho do array
25 // // // // cria JButtons e registra cria JButtons e registra cria JButtons e registra cria JButtons e registra listenerslistenerslistenerslisteners para el para el para el para eleseseses
26 forforforfor ( ( ( ( intintintint count = count = count = count = 0000; count < names.length; count++ ) ; count < names.length; count++ ) ; count < names.length; count++ ) ; count < names.length; count++ )
27 { { { {
28 buttons[ count ] = buttons[ count ] = buttons[ count ] = buttons[ count ] = newnewnewnew JButton( names[ count ] ); JButton( names[ count ] ); JButton( names[ count ] ); JButton( names[ count ] );
29 buttons[ count ].addActionListener( buttons[ count ].addActionListener( buttons[ count ].addActionListener( buttons[ count ].addActionListener( thisthisthisthis ); ); ); );
30 } } } } // // // // fim de fim de fim de fim de forforforfor
Declara a variável de instância BorderLayout
Cria BorderLayout
Configura o layout
Registra um handler de evento
Introdução à Tecnologia Java – 02/2012
Exemplo31
32 add( buttons[ add( buttons[ add( buttons[ add( buttons[ 0000 ], ], ], ], BorderLayout.NORTHBorderLayout.NORTHBorderLayout.NORTHBorderLayout.NORTH ); ); ); ); // // // // adiciona botão para o norteadiciona botão para o norteadiciona botão para o norteadiciona botão para o norte
33 add( buttons[ add( buttons[ add( buttons[ add( buttons[ 1111 ], ], ], ], BorderLayout.SOUTHBorderLayout.SOUTHBorderLayout.SOUTHBorderLayout.SOUTH ); ); ); ); // // // // adiciona botão para o suladiciona botão para o suladiciona botão para o suladiciona botão para o sul
34 add( buttons[ add( buttons[ add( buttons[ add( buttons[ 2222 ], ], ], ], BorderLayout.EASTBorderLayout.EASTBorderLayout.EASTBorderLayout.EAST ); ); ); ); // // // // adiciona botão para o lesteadiciona botão para o lesteadiciona botão para o lesteadiciona botão para o leste
35 add( buttons[ add( buttons[ add( buttons[ add( buttons[ 3333 ], ], ], ], BorderLayout.WEST BorderLayout.WEST BorderLayout.WEST BorderLayout.WEST ); ); ); ); // // // // adiciona botão para o oesteadiciona botão para o oesteadiciona botão para o oesteadiciona botão para o oeste
36 add( buttons[ add( buttons[ add( buttons[ add( buttons[ 4444 ], ], ], ], BorderLayout.CENTERBorderLayout.CENTERBorderLayout.CENTERBorderLayout.CENTER ); ); ); ); // // // // adiciona botão para o centroadiciona botão para o centroadiciona botão para o centroadiciona botão para o centro
37 } } } } // // // // fim do construtorfim do construtorfim do construtorfim do construtor BorderLayoutFrame BorderLayoutFrame BorderLayoutFrame BorderLayoutFrame
38
39 // // // // trata eventos de botãotrata eventos de botãotrata eventos de botãotrata eventos de botão
Adiciona botões à aplicação utilizando
as constantes do gerenciador de layout
Celso Olivete Júnior 240
40 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
41 { { { {
42 // // // // verifica a origem de evento e o painel de conteúdo de layout correspondentementeverifica a origem de evento e o painel de conteúdo de layout correspondentementeverifica a origem de evento e o painel de conteúdo de layout correspondentementeverifica a origem de evento e o painel de conteúdo de layout correspondentemente
43 forforforfor ( ( ( ( JButtonJButtonJButtonJButton button : buttons ) button : buttons ) button : buttons ) button : buttons )
44 { { { {
45 ifififif ( event.getSource() ( event.getSource() ( event.getSource() ( event.getSource() == button )== button )== button )== button )
46 button.setVisible( button.setVisible( button.setVisible( button.setVisible( falsefalsefalsefalse ); ); ); ); // // // // oculta botão clicadooculta botão clicadooculta botão clicadooculta botão clicado
47 elseelseelseelse
48 button.setVisible( button.setVisible( button.setVisible( button.setVisible( truetruetruetrue ); ); ); ); // // // // mostra outros botõesmostra outros botõesmostra outros botõesmostra outros botões
49 } } } } // // // // fim de forfim de forfim de forfim de for
50
51 layout.layoutContainer( getContentPane() )layout.layoutContainer( getContentPane() )layout.layoutContainer( getContentPane() )layout.layoutContainer( getContentPane() ); ; ; ; // // // // painel de conteúdo de painel de conteúdo de painel de conteúdo de painel de conteúdo de layoutlayoutlayoutlayout
52 } } } } // // // // fim do método fim do método fim do método fim do método actionPerformedactionPerformedactionPerformedactionPerformed
53 } } } } // // // // fim dfim dfim dfim da classea classea classea classe BorderLayoutFrameBorderLayoutFrameBorderLayoutFrameBorderLayoutFrame
Introdução à Tecnologia Java – 02/2012
Exemplo31
32 add( buttons[ add( buttons[ add( buttons[ add( buttons[ 0000 ], ], ], ], BorderLayout.NORTHBorderLayout.NORTHBorderLayout.NORTHBorderLayout.NORTH ); ); ); ); // // // // adiciona botão para o norteadiciona botão para o norteadiciona botão para o norteadiciona botão para o norte
33 add( buttons[ add( buttons[ add( buttons[ add( buttons[ 1111 ], ], ], ], BorderLayout.SOUTHBorderLayout.SOUTHBorderLayout.SOUTHBorderLayout.SOUTH ); ); ); ); // // // // adiciona botão para o suladiciona botão para o suladiciona botão para o suladiciona botão para o sul
34 add( buttons[ add( buttons[ add( buttons[ add( buttons[ 2222 ], ], ], ], BorderLayout.EASTBorderLayout.EASTBorderLayout.EASTBorderLayout.EAST ); ); ); ); // // // // adiciona botão para o lesteadiciona botão para o lesteadiciona botão para o lesteadiciona botão para o leste
35 add( buttons[ add( buttons[ add( buttons[ add( buttons[ 3333 ], ], ], ], BorderLayout.WEST BorderLayout.WEST BorderLayout.WEST BorderLayout.WEST ); ); ); ); // // // // adiciona botão para o oesteadiciona botão para o oesteadiciona botão para o oesteadiciona botão para o oeste
36 add( buttons[ add( buttons[ add( buttons[ add( buttons[ 4444 ], ], ], ], BorderLayout.CENTERBorderLayout.CENTERBorderLayout.CENTERBorderLayout.CENTER ); ); ); ); // // // // adiciona botão para o centroadiciona botão para o centroadiciona botão para o centroadiciona botão para o centro
37 } } } } // // // // fim do construtorfim do construtorfim do construtorfim do construtor BorderLayoutFrame BorderLayoutFrame BorderLayoutFrame BorderLayoutFrame
38
39 // // // // trata eventos de botãotrata eventos de botãotrata eventos de botãotrata eventos de botão
Adiciona botões à aplicação utilizando
as constantes do gerenciador de layout
Celso Olivete Júnior 241
40 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
41 { { { {
42 // // // // verifica a origem de evento e o painel de conteúdo de layout correspondentementeverifica a origem de evento e o painel de conteúdo de layout correspondentementeverifica a origem de evento e o painel de conteúdo de layout correspondentementeverifica a origem de evento e o painel de conteúdo de layout correspondentemente
43 forforforfor ( ( ( ( JButtonJButtonJButtonJButton button : buttons ) button : buttons ) button : buttons ) button : buttons )
44 { { { {
45 ifififif ( event.getSource() ( event.getSource() ( event.getSource() ( event.getSource() == button )== button )== button )== button )
46 button.setVisible( button.setVisible( button.setVisible( button.setVisible( falsefalsefalsefalse ); ); ); ); // // // // oculta botão clicadooculta botão clicadooculta botão clicadooculta botão clicado
47 elseelseelseelse
48 button.setVisible( button.setVisible( button.setVisible( button.setVisible( truetruetruetrue ); ); ); ); // // // // mostra outros botõesmostra outros botõesmostra outros botõesmostra outros botões
49 } } } } // // // // fim de forfim de forfim de forfim de for
50
51 layout.layoutContainer( getContentPane() )layout.layoutContainer( getContentPane() )layout.layoutContainer( getContentPane() )layout.layoutContainer( getContentPane() ); ; ; ; // // // // painel de conteúdo de painel de conteúdo de painel de conteúdo de painel de conteúdo de layoutlayoutlayoutlayout
52 } } } } // // // // fim do método fim do método fim do método fim do método actionPerformedactionPerformedactionPerformedactionPerformed
53 } } } } // // // // fim dfim dfim dfim da classea classea classea classe BorderLayoutFrameBorderLayoutFrameBorderLayoutFrameBorderLayoutFrame
Torna o botão invisível
Introdução à Tecnologia Java – 02/2012
Exemplo31
32 add( buttons[ add( buttons[ add( buttons[ add( buttons[ 0000 ], ], ], ], BorderLayout.NORTHBorderLayout.NORTHBorderLayout.NORTHBorderLayout.NORTH ); ); ); ); // // // // adiciona botão para o norteadiciona botão para o norteadiciona botão para o norteadiciona botão para o norte
33 add( buttons[ add( buttons[ add( buttons[ add( buttons[ 1111 ], ], ], ], BorderLayout.SOUTHBorderLayout.SOUTHBorderLayout.SOUTHBorderLayout.SOUTH ); ); ); ); // // // // adiciona botão para o suladiciona botão para o suladiciona botão para o suladiciona botão para o sul
34 add( buttons[ add( buttons[ add( buttons[ add( buttons[ 2222 ], ], ], ], BorderLayout.EASTBorderLayout.EASTBorderLayout.EASTBorderLayout.EAST ); ); ); ); // // // // adiciona botão para o lesteadiciona botão para o lesteadiciona botão para o lesteadiciona botão para o leste
35 add( buttons[ add( buttons[ add( buttons[ add( buttons[ 3333 ], ], ], ], BorderLayout.WEST BorderLayout.WEST BorderLayout.WEST BorderLayout.WEST ); ); ); ); // // // // adiciona botão para o oesteadiciona botão para o oesteadiciona botão para o oesteadiciona botão para o oeste
36 add( buttons[ add( buttons[ add( buttons[ add( buttons[ 4444 ], ], ], ], BorderLayout.CENTERBorderLayout.CENTERBorderLayout.CENTERBorderLayout.CENTER ); ); ); ); // // // // adiciona botão para o centroadiciona botão para o centroadiciona botão para o centroadiciona botão para o centro
37 } } } } // // // // fim do construtorfim do construtorfim do construtorfim do construtor BorderLayoutFrame BorderLayoutFrame BorderLayoutFrame BorderLayoutFrame
38
39 // // // // trata eventos de botãotrata eventos de botãotrata eventos de botãotrata eventos de botão
Adiciona botões à aplicação utilizando
as constantes do gerenciador de layout
Celso Olivete Júnior 242
40 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
41 { { { {
42 // // // // verifica a origem de evento e o painel de conteúdo de layout correspondentementeverifica a origem de evento e o painel de conteúdo de layout correspondentementeverifica a origem de evento e o painel de conteúdo de layout correspondentementeverifica a origem de evento e o painel de conteúdo de layout correspondentemente
43 forforforfor ( ( ( ( JButtonJButtonJButtonJButton button : buttons ) button : buttons ) button : buttons ) button : buttons )
44 { { { {
45 ifififif ( event.getSource() ( event.getSource() ( event.getSource() ( event.getSource() == button )== button )== button )== button )
46 button.setVisible( button.setVisible( button.setVisible( button.setVisible( falsefalsefalsefalse ); ); ); ); // // // // oculta botão clicadooculta botão clicadooculta botão clicadooculta botão clicado
47 elseelseelseelse
48 button.setVisible( button.setVisible( button.setVisible( button.setVisible( truetruetruetrue ); ); ); ); // // // // mostra outros botõesmostra outros botõesmostra outros botõesmostra outros botões
49 } } } } // // // // fim de forfim de forfim de forfim de for
50
51 layout.layoutContainer( getContentPane() )layout.layoutContainer( getContentPane() )layout.layoutContainer( getContentPane() )layout.layoutContainer( getContentPane() ); ; ; ; // // // // painel de conteúdo de painel de conteúdo de painel de conteúdo de painel de conteúdo de layoutlayoutlayoutlayout
52 } } } } // // // // fim do método fim do método fim do método fim do método actionPerformedactionPerformedactionPerformedactionPerformed
53 } } } } // // // // fim dfim dfim dfim da classea classea classea classe BorderLayoutFrameBorderLayoutFrameBorderLayoutFrameBorderLayoutFrame
Torna o botão invisível
Torna o botão visível
Introdução à Tecnologia Java – 02/2012
Exemplo31
32 add( buttons[ add( buttons[ add( buttons[ add( buttons[ 0000 ], ], ], ], BorderLayout.NORTHBorderLayout.NORTHBorderLayout.NORTHBorderLayout.NORTH ); ); ); ); // // // // adiciona botão para o norteadiciona botão para o norteadiciona botão para o norteadiciona botão para o norte
33 add( buttons[ add( buttons[ add( buttons[ add( buttons[ 1111 ], ], ], ], BorderLayout.SOUTHBorderLayout.SOUTHBorderLayout.SOUTHBorderLayout.SOUTH ); ); ); ); // // // // adiciona botão para o suladiciona botão para o suladiciona botão para o suladiciona botão para o sul
34 add( buttons[ add( buttons[ add( buttons[ add( buttons[ 2222 ], ], ], ], BorderLayout.EASTBorderLayout.EASTBorderLayout.EASTBorderLayout.EAST ); ); ); ); // // // // adiciona botão para o lesteadiciona botão para o lesteadiciona botão para o lesteadiciona botão para o leste
35 add( buttons[ add( buttons[ add( buttons[ add( buttons[ 3333 ], ], ], ], BorderLayout.WEST BorderLayout.WEST BorderLayout.WEST BorderLayout.WEST ); ); ); ); // // // // adiciona botão para o oesteadiciona botão para o oesteadiciona botão para o oesteadiciona botão para o oeste
36 add( buttons[ add( buttons[ add( buttons[ add( buttons[ 4444 ], ], ], ], BorderLayout.CENTERBorderLayout.CENTERBorderLayout.CENTERBorderLayout.CENTER ); ); ); ); // // // // adiciona botão para o centroadiciona botão para o centroadiciona botão para o centroadiciona botão para o centro
37 } } } } // // // // fim do construtorfim do construtorfim do construtorfim do construtor BorderLayoutFrame BorderLayoutFrame BorderLayoutFrame BorderLayoutFrame
38
39 // // // // trata eventos de botãotrata eventos de botãotrata eventos de botãotrata eventos de botão
Adiciona botões à aplicação utilizando
as constantes do gerenciador de layout
Celso Olivete Júnior 243
40 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
41 { { { {
42 // // // // verifica a origem de evento e o painel de conteúdo de layout correspondentementeverifica a origem de evento e o painel de conteúdo de layout correspondentementeverifica a origem de evento e o painel de conteúdo de layout correspondentementeverifica a origem de evento e o painel de conteúdo de layout correspondentemente
43 forforforfor ( ( ( ( JButtonJButtonJButtonJButton button : buttons ) button : buttons ) button : buttons ) button : buttons )
44 { { { {
45 ifififif ( event.getSource() ( event.getSource() ( event.getSource() ( event.getSource() == button )== button )== button )== button )
46 button.setVisible( button.setVisible( button.setVisible( button.setVisible( falsefalsefalsefalse ); ); ); ); // // // // oculta botão clicadooculta botão clicadooculta botão clicadooculta botão clicado
47 elseelseelseelse
48 button.setVisible( button.setVisible( button.setVisible( button.setVisible( truetruetruetrue ); ); ); ); // // // // mostra outros botõesmostra outros botõesmostra outros botõesmostra outros botões
49 } } } } // // // // fim de forfim de forfim de forfim de for
50
51 layout.layoutContainer( getContentPane() )layout.layoutContainer( getContentPane() )layout.layoutContainer( getContentPane() )layout.layoutContainer( getContentPane() ); ; ; ; // // // // painel de conteúdo de painel de conteúdo de painel de conteúdo de painel de conteúdo de layoutlayoutlayoutlayout
52 } } } } // // // // fim do método fim do método fim do método fim do método actionPerformedactionPerformedactionPerformedactionPerformed
53 } } } } // // // // fim dfim dfim dfim da classea classea classea classe BorderLayoutFrameBorderLayoutFrameBorderLayoutFrameBorderLayoutFrame
Torna o botão invisível
Torna o botão visível
Atualiza o layout
Introdução à Tecnologia Java – 02/2012
Exemplo 1 // Fig. 11.42: BorderLayoutDemo.java// Fig. 11.42: BorderLayoutDemo.java// Fig. 11.42: BorderLayoutDemo.java// Fig. 11.42: BorderLayoutDemo.java
2 // Test// Test// Test// Testandoandoandoando BorderLayoutFrame. BorderLayoutFrame. BorderLayoutFrame. BorderLayoutFrame.
3 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
4
5 publicpublicpublicpublic classclassclassclass BorderLayoutDemo BorderLayoutDemo BorderLayoutDemo BorderLayoutDemo
6 {{{{
7 publicpublicpublicpublic staticstaticstaticstatic voidvoidvoidvoid main( String args[] ) main( String args[] ) main( String args[] ) main( String args[] )
8 { { { {
9 BorderLayoutFrame borderLayoutFrame BorderLayoutFrame borderLayoutFrame BorderLayoutFrame borderLayoutFrame BorderLayoutFrame borderLayoutFrame = = = = newnewnewnew BorderLayoutFrame(); BorderLayoutFrame(); BorderLayoutFrame(); BorderLayoutFrame();
Celso Olivete Júnior 244
9 BorderLayoutFrame borderLayoutFrame BorderLayoutFrame borderLayoutFrame BorderLayoutFrame borderLayoutFrame BorderLayoutFrame borderLayoutFrame = = = = newnewnewnew BorderLayoutFrame(); BorderLayoutFrame(); BorderLayoutFrame(); BorderLayoutFrame();
10 borderLayoutFrame.setDefaultCloseOperation( borderLayoutFrame.setDefaultCloseOperation( borderLayoutFrame.setDefaultCloseOperation( borderLayoutFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSE ); ); ); );
11 borderLayoutFrame.setSize( borderLayoutFrame.setSize( borderLayoutFrame.setSize( borderLayoutFrame.setSize( 300300300300, , , , 200200200200 ); ); ); ); // // // // configura o tamanho doconfigura o tamanho doconfigura o tamanho doconfigura o tamanho do frame frame frame frame
12 borderLayoutFrame.setVisible( borderLayoutFrame.setVisible( borderLayoutFrame.setVisible( borderLayoutFrame.setVisible( truetruetruetrue ); ); ); ); // // // // exibe oexibe oexibe oexibe o frame frame frame frame
13 } } } } // // // // fim de fim de fim de fim de mainmainmainmain
14 } } } } // // // // fim da classe fim da classe fim da classe fim da classe BorderLayoutDemoBorderLayoutDemoBorderLayoutDemoBorderLayoutDemo
lacuna vertical
Lacuna
Horizontal
Lacuna
Vertical
Introdução à Tecnologia Java – 02/2012
Exemplo
Celso Olivete Júnior 245
Introdução à Tecnologia Java – 02/2012
GridLayout
•Divide o contêiner em uma grade.
•Todos os componentes têm a mesma largura
e altura.e altura.
Celso Olivete Júnior 246
Introdução à Tecnologia Java – 02/2012
Exemplo 3 importimportimportimport java.awt.GridLayout; java.awt.GridLayout; java.awt.GridLayout; java.awt.GridLayout;
4 importimportimportimport java.awt.Container; java.awt.Container; java.awt.Container; java.awt.Container;
5 importimportimportimport java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener;
6 importimportimportimport java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent;
7 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
8 importimportimportimport javax.swing.JButton; javax.swing.JButton; javax.swing.JButton; javax.swing.JButton;
10 publicpublicpublicpublic classclassclassclass GridLayoutFrame GridLayoutFrame GridLayoutFrame GridLayoutFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame implementsimplementsimplementsimplements ActionListener ActionListener ActionListener ActionListener
11 {{{{
12 privateprivateprivateprivate JButton buttons[]; JButton buttons[]; JButton buttons[]; JButton buttons[]; // array // array // array // array de botõesde botõesde botõesde botões
13 privateprivateprivateprivate finalfinalfinalfinal String names[] = String names[] = String names[] = String names[] =
Celso Olivete Júnior 247
13 privateprivateprivateprivate finalfinalfinalfinal String names[] = String names[] = String names[] = String names[] =
14 { { { { "one""one""one""one", , , , "two""two""two""two", , , , "three""three""three""three", , , , "four""four""four""four", , , , "five""five""five""five", , , , "six""six""six""six" }; }; }; };
15 privateprivateprivateprivate booleanbooleanbooleanboolean toggle = toggle = toggle = toggle = truetruetruetrue; ; ; ; // // // // alterna entre dois layoutsalterna entre dois layoutsalterna entre dois layoutsalterna entre dois layouts
16 privateprivateprivateprivate Container container; Container container; Container container; Container container; // cont // cont // cont // contêêêêinerinerineriner do frame do frame do frame do frame
17 privateprivateprivateprivate GridLayout gridLayout1; GridLayout gridLayout1; GridLayout gridLayout1; GridLayout gridLayout1; // // // // primeiroprimeiroprimeiroprimeiro gridlayout gridlayout gridlayout gridlayout
18 privateprivateprivateprivate GridLayout gridLayout2; GridLayout gridLayout2; GridLayout gridLayout2; GridLayout gridLayout2; // // // // segundosegundosegundosegundo grid grid grid gridlayoutlayoutlayoutlayout
20 // // // // construtor sem argumentoconstrutor sem argumentoconstrutor sem argumentoconstrutor sem argumento
21 publicpublicpublicpublic GridLayoutFrame() GridLayoutFrame() GridLayoutFrame() GridLayoutFrame()
22 { { { {
23 supersupersupersuper( ( ( ( "GridLayout Demo""GridLayout Demo""GridLayout Demo""GridLayout Demo" ); ); ); );
24 gridLayout1 = gridLayout1 = gridLayout1 = gridLayout1 = newnewnewnew GridLayout( GridLayout( GridLayout( GridLayout( 2222, , , , 3333, , , , 5555, , , , 5555 ); ); ); ); // // // // 2 por 3; lacunas de 52 por 3; lacunas de 52 por 3; lacunas de 52 por 3; lacunas de 5
25 gridLayout2 = gridLayout2 = gridLayout2 = gridLayout2 = newnewnewnew GridLayout( GridLayout( GridLayout( GridLayout( 3333, , , , 2222 ); ); ); ); // 3 // 3 // 3 // 3 porporporpor 2; 2; 2; 2; sem lacunassem lacunassem lacunassem lacunas
26 container = getContentPane(); container = getContentPane(); container = getContentPane(); container = getContentPane(); // // // // obtém painel de obtém painel de obtém painel de obtém painel de contcontcontconteúdoeúdoeúdoeúdo
27 setLayout( gridLayout1 ); setLayout( gridLayout1 ); setLayout( gridLayout1 ); setLayout( gridLayout1 ); // // // // configura layout do configura layout do configura layout do configura layout do JFrameJFrameJFrameJFrame
28 buttons = buttons = buttons = buttons = newnewnewnew JButton[ names.length ]; JButton[ names.length ]; JButton[ names.length ]; JButton[ names.length ]; // cr// cr// cr// criaiaiaia array array array array dededede JButtons JButtons JButtons JButtons
Introdução à Tecnologia Java – 02/2012
Exemplo 3 importimportimportimport java.awt.GridLayout; java.awt.GridLayout; java.awt.GridLayout; java.awt.GridLayout;
4 importimportimportimport java.awt.Container; java.awt.Container; java.awt.Container; java.awt.Container;
5 importimportimportimport java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener;
6 importimportimportimport java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent;
7 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
8 importimportimportimport javax.swing.JButton; javax.swing.JButton; javax.swing.JButton; javax.swing.JButton;
10 publicpublicpublicpublic classclassclassclass GridLayoutFrame GridLayoutFrame GridLayoutFrame GridLayoutFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame implementsimplementsimplementsimplements ActionListener ActionListener ActionListener ActionListener
11 {{{{
12 privateprivateprivateprivate JButton buttons[]; JButton buttons[]; JButton buttons[]; JButton buttons[]; // array // array // array // array de botõesde botõesde botõesde botões
13 privateprivateprivateprivate finalfinalfinalfinal String names[] = String names[] = String names[] = String names[] =
Celso Olivete Júnior 248
13 privateprivateprivateprivate finalfinalfinalfinal String names[] = String names[] = String names[] = String names[] =
14 { { { { "one""one""one""one", , , , "two""two""two""two", , , , "three""three""three""three", , , , "four""four""four""four", , , , "five""five""five""five", , , , "six""six""six""six" }; }; }; };
15 privateprivateprivateprivate booleanbooleanbooleanboolean toggle = toggle = toggle = toggle = truetruetruetrue; ; ; ; // // // // alterna entre dois layoutsalterna entre dois layoutsalterna entre dois layoutsalterna entre dois layouts
16 privateprivateprivateprivate Container container; Container container; Container container; Container container; // cont // cont // cont // contêêêêinerinerineriner do frame do frame do frame do frame
17 privateprivateprivateprivate GridLayout gridLayout1; GridLayout gridLayout1; GridLayout gridLayout1; GridLayout gridLayout1; // // // // primeiroprimeiroprimeiroprimeiro gridlayout gridlayout gridlayout gridlayout
18 privateprivateprivateprivate GridLayout gridLayout2; GridLayout gridLayout2; GridLayout gridLayout2; GridLayout gridLayout2; // // // // segundosegundosegundosegundo grid grid grid gridlayoutlayoutlayoutlayout
20 // // // // construtor sem argumentoconstrutor sem argumentoconstrutor sem argumentoconstrutor sem argumento
21 publicpublicpublicpublic GridLayoutFrame() GridLayoutFrame() GridLayoutFrame() GridLayoutFrame()
22 { { { {
23 supersupersupersuper( ( ( ( "GridLayout Demo""GridLayout Demo""GridLayout Demo""GridLayout Demo" ); ); ); );
24 gridLayout1 = gridLayout1 = gridLayout1 = gridLayout1 = newnewnewnew GridLayout( GridLayout( GridLayout( GridLayout( 2222, , , , 3333, , , , 5555, , , , 5555 ); ); ); ); // // // // 2 por 3; lacunas de 52 por 3; lacunas de 52 por 3; lacunas de 52 por 3; lacunas de 5
25 gridLayout2 = gridLayout2 = gridLayout2 = gridLayout2 = newnewnewnew GridLayout( GridLayout( GridLayout( GridLayout( 3333, , , , 2222 ); ); ); ); // 3 // 3 // 3 // 3 porporporpor 2; 2; 2; 2; sem lacunassem lacunassem lacunassem lacunas
26 container = getContentPane(); container = getContentPane(); container = getContentPane(); container = getContentPane(); // // // // obtém painel de obtém painel de obtém painel de obtém painel de contcontcontconteúdoeúdoeúdoeúdo
27 setLayout( gridLayout1 ); setLayout( gridLayout1 ); setLayout( gridLayout1 ); setLayout( gridLayout1 ); // // // // configura layout do configura layout do configura layout do configura layout do JFrameJFrameJFrameJFrame
28 buttons = buttons = buttons = buttons = newnewnewnew JButton[ names.length ]; JButton[ names.length ]; JButton[ names.length ]; JButton[ names.length ]; // cr// cr// cr// criaiaiaia array array array array dededede JButtons JButtons JButtons JButtons
Declara duas variáveis de instância
GridLayout
Introdução à Tecnologia Java – 02/2012
Exemplo 3 importimportimportimport java.awt.GridLayout; java.awt.GridLayout; java.awt.GridLayout; java.awt.GridLayout;
4 importimportimportimport java.awt.Container; java.awt.Container; java.awt.Container; java.awt.Container;
5 importimportimportimport java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener;
6 importimportimportimport java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent;
7 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
8 importimportimportimport javax.swing.JButton; javax.swing.JButton; javax.swing.JButton; javax.swing.JButton;
10 publicpublicpublicpublic classclassclassclass GridLayoutFrame GridLayoutFrame GridLayoutFrame GridLayoutFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame implementsimplementsimplementsimplements ActionListener ActionListener ActionListener ActionListener
11 {{{{
12 privateprivateprivateprivate JButton buttons[]; JButton buttons[]; JButton buttons[]; JButton buttons[]; // array // array // array // array de botõesde botõesde botõesde botões
13 privateprivateprivateprivate finalfinalfinalfinal String names[] = String names[] = String names[] = String names[] =
Celso Olivete Júnior 249
13 privateprivateprivateprivate finalfinalfinalfinal String names[] = String names[] = String names[] = String names[] =
14 { { { { "one""one""one""one", , , , "two""two""two""two", , , , "three""three""three""three", , , , "four""four""four""four", , , , "five""five""five""five", , , , "six""six""six""six" }; }; }; };
15 privateprivateprivateprivate booleanbooleanbooleanboolean toggle = toggle = toggle = toggle = truetruetruetrue; ; ; ; // // // // alterna entre dois layoutsalterna entre dois layoutsalterna entre dois layoutsalterna entre dois layouts
16 privateprivateprivateprivate Container container; Container container; Container container; Container container; // cont // cont // cont // contêêêêinerinerineriner do frame do frame do frame do frame
17 privateprivateprivateprivate GridLayout gridLayout1; GridLayout gridLayout1; GridLayout gridLayout1; GridLayout gridLayout1; // // // // primeiroprimeiroprimeiroprimeiro gridlayout gridlayout gridlayout gridlayout
18 privateprivateprivateprivate GridLayout gridLayout2; GridLayout gridLayout2; GridLayout gridLayout2; GridLayout gridLayout2; // // // // segundosegundosegundosegundo grid grid grid gridlayoutlayoutlayoutlayout
20 // // // // construtor sem argumentoconstrutor sem argumentoconstrutor sem argumentoconstrutor sem argumento
21 publicpublicpublicpublic GridLayoutFrame() GridLayoutFrame() GridLayoutFrame() GridLayoutFrame()
22 { { { {
23 supersupersupersuper( ( ( ( "GridLayout Demo""GridLayout Demo""GridLayout Demo""GridLayout Demo" ); ); ); );
24 gridLayout1 = gridLayout1 = gridLayout1 = gridLayout1 = newnewnewnew GridLayout( GridLayout( GridLayout( GridLayout( 2222, , , , 3333, , , , 5555, , , , 5555 ); ); ); ); // // // // 2 por 3; lacunas de 52 por 3; lacunas de 52 por 3; lacunas de 52 por 3; lacunas de 5
25 gridLayout2 = gridLayout2 = gridLayout2 = gridLayout2 = newnewnewnew GridLayout( GridLayout( GridLayout( GridLayout( 3333, , , , 2222 ); ); ); ); // 3 // 3 // 3 // 3 porporporpor 2; 2; 2; 2; sem lacunassem lacunassem lacunassem lacunas
26 container = getContentPane(); container = getContentPane(); container = getContentPane(); container = getContentPane(); // // // // obtém painel de obtém painel de obtém painel de obtém painel de contcontcontconteúdoeúdoeúdoeúdo
27 setLayout( gridLayout1 ); setLayout( gridLayout1 ); setLayout( gridLayout1 ); setLayout( gridLayout1 ); // // // // configura layout do configura layout do configura layout do configura layout do JFrameJFrameJFrameJFrame
28 buttons = buttons = buttons = buttons = newnewnewnew JButton[ names.length ]; JButton[ names.length ]; JButton[ names.length ]; JButton[ names.length ]; // cr// cr// cr// criaiaiaia array array array array dededede JButtons JButtons JButtons JButtons
Declara duas variáveis de instância
GridLayout
Cria GridLayout
Introdução à Tecnologia Java – 02/2012
Exemplo 3 importimportimportimport java.awt.GridLayout; java.awt.GridLayout; java.awt.GridLayout; java.awt.GridLayout;
4 importimportimportimport java.awt.Container; java.awt.Container; java.awt.Container; java.awt.Container;
5 importimportimportimport java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener;
6 importimportimportimport java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent;
7 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
8 importimportimportimport javax.swing.JButton; javax.swing.JButton; javax.swing.JButton; javax.swing.JButton;
10 publicpublicpublicpublic classclassclassclass GridLayoutFrame GridLayoutFrame GridLayoutFrame GridLayoutFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame implementsimplementsimplementsimplements ActionListener ActionListener ActionListener ActionListener
11 {{{{
12 privateprivateprivateprivate JButton buttons[]; JButton buttons[]; JButton buttons[]; JButton buttons[]; // array // array // array // array de botõesde botõesde botõesde botões
13 privateprivateprivateprivate finalfinalfinalfinal String names[] = String names[] = String names[] = String names[] =
Celso Olivete Júnior 250
13 privateprivateprivateprivate finalfinalfinalfinal String names[] = String names[] = String names[] = String names[] =
14 { { { { "one""one""one""one", , , , "two""two""two""two", , , , "three""three""three""three", , , , "four""four""four""four", , , , "five""five""five""five", , , , "six""six""six""six" }; }; }; };
15 privateprivateprivateprivate booleanbooleanbooleanboolean toggle = toggle = toggle = toggle = truetruetruetrue; ; ; ; // // // // alterna entre dois layoutsalterna entre dois layoutsalterna entre dois layoutsalterna entre dois layouts
16 privateprivateprivateprivate Container container; Container container; Container container; Container container; // cont // cont // cont // contêêêêinerinerineriner do frame do frame do frame do frame
17 privateprivateprivateprivate GridLayout gridLayout1; GridLayout gridLayout1; GridLayout gridLayout1; GridLayout gridLayout1; // // // // primeiroprimeiroprimeiroprimeiro gridlayout gridlayout gridlayout gridlayout
18 privateprivateprivateprivate GridLayout gridLayout2; GridLayout gridLayout2; GridLayout gridLayout2; GridLayout gridLayout2; // // // // segundosegundosegundosegundo grid grid grid gridlayoutlayoutlayoutlayout
20 // // // // construtor sem argumentoconstrutor sem argumentoconstrutor sem argumentoconstrutor sem argumento
21 publicpublicpublicpublic GridLayoutFrame() GridLayoutFrame() GridLayoutFrame() GridLayoutFrame()
22 { { { {
23 supersupersupersuper( ( ( ( "GridLayout Demo""GridLayout Demo""GridLayout Demo""GridLayout Demo" ); ); ); );
24 gridLayout1 = gridLayout1 = gridLayout1 = gridLayout1 = newnewnewnew GridLayout( GridLayout( GridLayout( GridLayout( 2222, , , , 3333, , , , 5555, , , , 5555 ); ); ); ); // // // // 2 por 3; lacunas de 52 por 3; lacunas de 52 por 3; lacunas de 52 por 3; lacunas de 5
25 gridLayout2 = gridLayout2 = gridLayout2 = gridLayout2 = newnewnewnew GridLayout( GridLayout( GridLayout( GridLayout( 3333, , , , 2222 ); ); ); ); // 3 // 3 // 3 // 3 porporporpor 2; 2; 2; 2; sem lacunassem lacunassem lacunassem lacunas
26 container = getContentPane(); container = getContentPane(); container = getContentPane(); container = getContentPane(); // // // // obtém painel de obtém painel de obtém painel de obtém painel de contcontcontconteúdoeúdoeúdoeúdo
27 setLayout( gridLayout1 ); setLayout( gridLayout1 ); setLayout( gridLayout1 ); setLayout( gridLayout1 ); // // // // configura layout do configura layout do configura layout do configura layout do JFrameJFrameJFrameJFrame
28 buttons = buttons = buttons = buttons = newnewnewnew JButton[ names.length ]; JButton[ names.length ]; JButton[ names.length ]; JButton[ names.length ]; // cr// cr// cr// criaiaiaia array array array array dededede JButtons JButtons JButtons JButtons
Declara duas variáveis de instância
GridLayout
Cria GridLayout
Configura o layout
Introdução à Tecnologia Java – 02/2012
Exemplo30 forforforfor ( ( ( ( intintintint count = count = count = count = 0000; count < names.length; count++ ); count < names.length; count++ ); count < names.length; count++ ); count < names.length; count++ )
31 { { { {
32 buttons[ count ] = buttons[ count ] = buttons[ count ] = buttons[ count ] = newnewnewnew JButton( names[ count ] ); JButton( names[ count ] ); JButton( names[ count ] ); JButton( names[ count ] );
33 buttons[ count ].addActionListener( buttons[ count ].addActionListener( buttons[ count ].addActionListener( buttons[ count ].addActionListener( thisthisthisthis ); ); ); ); // regis// regis// regis// registratratratra listener listener listener listener
34 add( buttons[ count ] )add( buttons[ count ] )add( buttons[ count ] )add( buttons[ count ] ); ; ; ; // ad// ad// ad// adicionaicionaicionaiciona b b b botão ao otão ao otão ao otão ao JFrameJFrameJFrameJFrame
35 } } } } // // // // fim de fim de fim de fim de forforforfor
36 } } } } // // // // fim do construtorfim do construtorfim do construtorfim do construtor GridLayoutFrame GridLayoutFrame GridLayoutFrame GridLayoutFrame
37
Adiciona o botão ao JFrame
Celso Olivete Júnior 251
38 // // // // trata eventos de botão alternando entre trata eventos de botão alternando entre trata eventos de botão alternando entre trata eventos de botão alternando entre layoutslayoutslayoutslayouts
39 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
40 { { { {
41 ifififif ( tog ( tog ( tog ( toggle )gle )gle )gle )
42 container.setLayout( gridLayout2 ); container.setLayout( gridLayout2 ); container.setLayout( gridLayout2 ); container.setLayout( gridLayout2 ); // // // // configuraconfiguraconfiguraconfigura layout layout layout layout comocomocomocomo se se se segundogundogundogundo
43 elseelseelseelse
44 container.setLayout( gridLayout1 ); container.setLayout( gridLayout1 ); container.setLayout( gridLayout1 ); container.setLayout( gridLayout1 ); // // // // configuraconfiguraconfiguraconfigura layout layout layout layout como primeirocomo primeirocomo primeirocomo primeiro
45
46 toggle = !toggle; toggle = !toggle; toggle = !toggle; toggle = !toggle; // // // // alterna para valor opostoalterna para valor opostoalterna para valor opostoalterna para valor oposto
47 container.validate(); container.validate(); container.validate(); container.validate(); // // // // refaz o layout do contêinerrefaz o layout do contêinerrefaz o layout do contêinerrefaz o layout do contêiner
48 } } } } // // // // fim do método fim do método fim do método fim do método actionPerformedactionPerformedactionPerformedactionPerformed
49 } } } } // // // // fim da classe fim da classe fim da classe fim da classe GridLayoutFrameGridLayoutFrameGridLayoutFrameGridLayoutFrame
Introdução à Tecnologia Java – 02/2012
Exemplo30 forforforfor ( ( ( ( intintintint count = count = count = count = 0000; count < names.length; count++ ); count < names.length; count++ ); count < names.length; count++ ); count < names.length; count++ )
31 { { { {
32 buttons[ count ] = buttons[ count ] = buttons[ count ] = buttons[ count ] = newnewnewnew JButton( names[ count ] ); JButton( names[ count ] ); JButton( names[ count ] ); JButton( names[ count ] );
33 buttons[ count ].addActionListener( buttons[ count ].addActionListener( buttons[ count ].addActionListener( buttons[ count ].addActionListener( thisthisthisthis ); ); ); ); // regis// regis// regis// registratratratra listener listener listener listener
34 add( buttons[ count ] )add( buttons[ count ] )add( buttons[ count ] )add( buttons[ count ] ); ; ; ; // ad// ad// ad// adicionaicionaicionaiciona b b b botão ao otão ao otão ao otão ao JFrameJFrameJFrameJFrame
35 } } } } // // // // fim de fim de fim de fim de forforforfor
36 } } } } // // // // fim do construtorfim do construtorfim do construtorfim do construtor GridLayoutFrame GridLayoutFrame GridLayoutFrame GridLayoutFrame
37
Adiciona o botão ao JFrame
Celso Olivete Júnior 252
38 // // // // trata eventos de botão alternando entre trata eventos de botão alternando entre trata eventos de botão alternando entre trata eventos de botão alternando entre layoutslayoutslayoutslayouts
39 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
40 { { { {
41 ifififif ( tog ( tog ( tog ( toggle )gle )gle )gle )
42 container.setLayout( gridLayout2 ); container.setLayout( gridLayout2 ); container.setLayout( gridLayout2 ); container.setLayout( gridLayout2 ); // // // // configuraconfiguraconfiguraconfigura layout layout layout layout comocomocomocomo se se se segundogundogundogundo
43 elseelseelseelse
44 container.setLayout( gridLayout1 ); container.setLayout( gridLayout1 ); container.setLayout( gridLayout1 ); container.setLayout( gridLayout1 ); // // // // configuraconfiguraconfiguraconfigura layout layout layout layout como primeirocomo primeirocomo primeirocomo primeiro
45
46 toggle = !toggle; toggle = !toggle; toggle = !toggle; toggle = !toggle; // // // // alterna para valor opostoalterna para valor opostoalterna para valor opostoalterna para valor oposto
47 container.validate(); container.validate(); container.validate(); container.validate(); // // // // refaz o layout do contêinerrefaz o layout do contêinerrefaz o layout do contêinerrefaz o layout do contêiner
48 } } } } // // // // fim do método fim do método fim do método fim do método actionPerformedactionPerformedactionPerformedactionPerformed
49 } } } } // // // // fim da classe fim da classe fim da classe fim da classe GridLayoutFrameGridLayoutFrameGridLayoutFrameGridLayoutFrame
Utiliza o segundo layout
Introdução à Tecnologia Java – 02/2012
Exemplo30 forforforfor ( ( ( ( intintintint count = count = count = count = 0000; count < names.length; count++ ); count < names.length; count++ ); count < names.length; count++ ); count < names.length; count++ )
31 { { { {
32 buttons[ count ] = buttons[ count ] = buttons[ count ] = buttons[ count ] = newnewnewnew JButton( names[ count ] ); JButton( names[ count ] ); JButton( names[ count ] ); JButton( names[ count ] );
33 buttons[ count ].addActionListener( buttons[ count ].addActionListener( buttons[ count ].addActionListener( buttons[ count ].addActionListener( thisthisthisthis ); ); ); ); // regis// regis// regis// registratratratra listener listener listener listener
34 add( buttons[ count ] )add( buttons[ count ] )add( buttons[ count ] )add( buttons[ count ] ); ; ; ; // ad// ad// ad// adicionaicionaicionaiciona b b b botão ao otão ao otão ao otão ao JFrameJFrameJFrameJFrame
35 } } } } // // // // fim de fim de fim de fim de forforforfor
36 } } } } // // // // fim do construtorfim do construtorfim do construtorfim do construtor GridLayoutFrame GridLayoutFrame GridLayoutFrame GridLayoutFrame
37
Adiciona o botão ao JFrame
Celso Olivete Júnior 253
38 // // // // trata eventos de botão alternando entre trata eventos de botão alternando entre trata eventos de botão alternando entre trata eventos de botão alternando entre layoutslayoutslayoutslayouts
39 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
40 { { { {
41 ifififif ( tog ( tog ( tog ( toggle )gle )gle )gle )
42 container.setLayout( gridLayout2 ); container.setLayout( gridLayout2 ); container.setLayout( gridLayout2 ); container.setLayout( gridLayout2 ); // // // // configuraconfiguraconfiguraconfigura layout layout layout layout comocomocomocomo se se se segundogundogundogundo
43 elseelseelseelse
44 container.setLayout( gridLayout1 ); container.setLayout( gridLayout1 ); container.setLayout( gridLayout1 ); container.setLayout( gridLayout1 ); // // // // configuraconfiguraconfiguraconfigura layout layout layout layout como primeirocomo primeirocomo primeirocomo primeiro
45
46 toggle = !toggle; toggle = !toggle; toggle = !toggle; toggle = !toggle; // // // // alterna para valor opostoalterna para valor opostoalterna para valor opostoalterna para valor oposto
47 container.validate(); container.validate(); container.validate(); container.validate(); // // // // refaz o layout do contêinerrefaz o layout do contêinerrefaz o layout do contêinerrefaz o layout do contêiner
48 } } } } // // // // fim do método fim do método fim do método fim do método actionPerformedactionPerformedactionPerformedactionPerformed
49 } } } } // // // // fim da classe fim da classe fim da classe fim da classe GridLayoutFrameGridLayoutFrameGridLayoutFrameGridLayoutFrame
Utiliza o segundo layout
Utiliza o primeiro layout
Introdução à Tecnologia Java – 02/2012
Exemplo30 forforforfor ( ( ( ( intintintint count = count = count = count = 0000; count < names.length; count++ ); count < names.length; count++ ); count < names.length; count++ ); count < names.length; count++ )
31 { { { {
32 buttons[ count ] = buttons[ count ] = buttons[ count ] = buttons[ count ] = newnewnewnew JButton( names[ count ] ); JButton( names[ count ] ); JButton( names[ count ] ); JButton( names[ count ] );
33 buttons[ count ].addActionListener( buttons[ count ].addActionListener( buttons[ count ].addActionListener( buttons[ count ].addActionListener( thisthisthisthis ); ); ); ); // regis// regis// regis// registratratratra listener listener listener listener
34 add( buttons[ count ] )add( buttons[ count ] )add( buttons[ count ] )add( buttons[ count ] ); ; ; ; // ad// ad// ad// adicionaicionaicionaiciona b b b botão ao otão ao otão ao otão ao JFrameJFrameJFrameJFrame
35 } } } } // // // // fim de fim de fim de fim de forforforfor
36 } } } } // // // // fim do construtorfim do construtorfim do construtorfim do construtor GridLayoutFrame GridLayoutFrame GridLayoutFrame GridLayoutFrame
37
Adiciona o botão ao JFrame
Celso Olivete Júnior 254
38 // // // // trata eventos de botão alternando entre trata eventos de botão alternando entre trata eventos de botão alternando entre trata eventos de botão alternando entre layoutslayoutslayoutslayouts
39 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
40 { { { {
41 ifififif ( tog ( tog ( tog ( toggle )gle )gle )gle )
42 container.setLayout( gridLayout2 ); container.setLayout( gridLayout2 ); container.setLayout( gridLayout2 ); container.setLayout( gridLayout2 ); // // // // configuraconfiguraconfiguraconfigura layout layout layout layout comocomocomocomo se se se segundogundogundogundo
43 elseelseelseelse
44 container.setLayout( gridLayout1 ); container.setLayout( gridLayout1 ); container.setLayout( gridLayout1 ); container.setLayout( gridLayout1 ); // // // // configuraconfiguraconfiguraconfigura layout layout layout layout como primeirocomo primeirocomo primeirocomo primeiro
45
46 toggle = !toggle; toggle = !toggle; toggle = !toggle; toggle = !toggle; // // // // alterna para valor opostoalterna para valor opostoalterna para valor opostoalterna para valor oposto
47 container.validate(); container.validate(); container.validate(); container.validate(); // // // // refaz o layout do contêinerrefaz o layout do contêinerrefaz o layout do contêinerrefaz o layout do contêiner
48 } } } } // // // // fim do método fim do método fim do método fim do método actionPerformedactionPerformedactionPerformedactionPerformed
49 } } } } // // // // fim da classe fim da classe fim da classe fim da classe GridLayoutFrameGridLayoutFrameGridLayoutFrameGridLayoutFrame
Utiliza o segundo layout
Utiliza o primeiro layout
Atualiza o layout
Introdução à Tecnologia Java – 02/2012
Exemplo 1 // Fig. 11.44: GridLayoutDemo.java// Fig. 11.44: GridLayoutDemo.java// Fig. 11.44: GridLayoutDemo.java// Fig. 11.44: GridLayoutDemo.java
2 // Test// Test// Test// Testandoandoandoando GridLayoutFrame. GridLayoutFrame. GridLayoutFrame. GridLayoutFrame.
3 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
4
5 publicpublicpublicpublic classclassclassclass GridLayoutDemo GridLayoutDemo GridLayoutDemo GridLayoutDemo
6 {{{{
7 public static voidpublic static voidpublic static voidpublic static void main( String args[] ) main( String args[] ) main( String args[] ) main( String args[] )
8 { { { {
9 GridLayoutFrame gridLayoutFrame = GridLayoutFrame gridLayoutFrame = GridLayoutFrame gridLayoutFrame = GridLayoutFrame gridLayoutFrame = newnewnewnew Grid Grid Grid GridLayoutFrame(); LayoutFrame(); LayoutFrame(); LayoutFrame();
Celso Olivete Júnior 255
9 GridLayoutFrame gridLayoutFrame = GridLayoutFrame gridLayoutFrame = GridLayoutFrame gridLayoutFrame = GridLayoutFrame gridLayoutFrame = newnewnewnew Grid Grid Grid GridLayoutFrame(); LayoutFrame(); LayoutFrame(); LayoutFrame();
10 gridLayoutFrame.setDefaultCloseOperation( gridLayoutFrame.setDefaultCloseOperation( gridLayoutFrame.setDefaultCloseOperation( gridLayoutFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSE ); ); ); );
11 gridLayoutFrame.setSize( gridLayoutFrame.setSize( gridLayoutFrame.setSize( gridLayoutFrame.setSize( 300300300300, , , , 200200200200 ); ); ); ); // // // // configura o tamanho do configura o tamanho do configura o tamanho do configura o tamanho do frameframeframeframe
12 gridLayoutFrame.setVisible( gridLayoutFrame.setVisible( gridLayoutFrame.setVisible( gridLayoutFrame.setVisible( truetruetruetrue ); ); ); ); // // // // exibe oexibe oexibe oexibe o frame frame frame frame
13 } } } } // // // // fim defim defim defim de mainmainmainmain
14 } } } } // // // // fim da classe fim da classe fim da classe fim da classe GridLayoutDemoGridLayoutDemoGridLayoutDemoGridLayoutDemo
Introdução à Tecnologia Java – 02/2012
Utilizando painéis para gerenciar layouts
mais complexos
•GUIs complexas frequentemente requerem
múltiplos painéis para organizar seusmúltiplos painéis para organizar seus
componentes adequadamente.
Celso Olivete Júnior 256
Introdução à Tecnologia Java – 02/2012
Exemplo
1 // Fig. 11.45: PanelFrame.java// Fig. 11.45: PanelFrame.java// Fig. 11.45: PanelFrame.java// Fig. 11.45: PanelFrame.java
2 // // // // Utilizando um JPanel para ajudar a fazer o layout dos componentesUtilizando um JPanel para ajudar a fazer o layout dos componentesUtilizando um JPanel para ajudar a fazer o layout dos componentesUtilizando um JPanel para ajudar a fazer o layout dos componentes....
3 importimportimportimport java.awt.GridLayout; java.awt.GridLayout; java.awt.GridLayout; java.awt.GridLayout;
4 importimportimportimport java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout;
5 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
6 importimportimportimport javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel;
7 importimportimportimport javax.swing.JButton; javax.swing.JButton; javax.swing.JButton; javax.swing.JButton;
8
9 pubpubpubpubliclicliclic classclassclassclass PanelFrame PanelFrame PanelFrame PanelFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
Celso Olivete Júnior 257
9 pubpubpubpubliclicliclic classclassclassclass PanelFrame PanelFrame PanelFrame PanelFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
10 {{{{
11 privateprivateprivateprivate JPanel buttonJPanel; JPanel buttonJPanel; JPanel buttonJPanel; JPanel buttonJPanel; // pa// pa// pa// paiiiinel nel nel nel ppppara armazenar botara armazenar botara armazenar botara armazenar botõesõesõesões
12 privateprivateprivateprivate JButton buttons[]; JButton buttons[]; JButton buttons[]; JButton buttons[]; // array // array // array // array ddddeeee b b b boooottttõesõesõesões
13
14 // // // // cccconstrutor sem onstrutor sem onstrutor sem onstrutor sem argumentargumentargumentargumentosososos
15 publicpublicpublicpublic PanelFrame() PanelFrame() PanelFrame() PanelFrame()
16 { { { {
17 supersupersupersuper( ( ( ( "Panel Demo""Panel Demo""Panel Demo""Panel Demo" ); ); ); );
18 buttons = buttons = buttons = buttons = newnewnewnew JButton[ JButton[ JButton[ JButton[ 5555 ]; ]; ]; ]; // cr// cr// cr// cria array de botia array de botia array de botia array de botõesõesõesões
19 buttonJPanel = buttonJPanel = buttonJPanel = buttonJPanel = newnewnewnew JPanel(); JPanel(); JPanel(); JPanel(); // // // // cccconfigura painelonfigura painelonfigura painelonfigura painel
20 buttonJPanel.setLayout( buttonJPanel.setLayout( buttonJPanel.setLayout( buttonJPanel.setLayout( newnewnewnew GridLayout( GridLayout( GridLayout( GridLayout( 1111, buttons.length ) );, buttons.length ) );, buttons.length ) );, buttons.length ) );
21
Introdução à Tecnologia Java – 02/2012
Exemplo
1 // Fig. 11.45: PanelFrame.java// Fig. 11.45: PanelFrame.java// Fig. 11.45: PanelFrame.java// Fig. 11.45: PanelFrame.java
2 // // // // Utilizando um JPanel para ajudar a fazer o layout dos componentesUtilizando um JPanel para ajudar a fazer o layout dos componentesUtilizando um JPanel para ajudar a fazer o layout dos componentesUtilizando um JPanel para ajudar a fazer o layout dos componentes....
3 importimportimportimport java.awt.GridLayout; java.awt.GridLayout; java.awt.GridLayout; java.awt.GridLayout;
4 importimportimportimport java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout;
5 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
6 importimportimportimport javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel;
7 importimportimportimport javax.swing.JButton; javax.swing.JButton; javax.swing.JButton; javax.swing.JButton;
8
9 pubpubpubpubliclicliclic classclassclassclass PanelFrame PanelFrame PanelFrame PanelFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
Celso Olivete Júnior 258
9 pubpubpubpubliclicliclic classclassclassclass PanelFrame PanelFrame PanelFrame PanelFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
10 {{{{
11 privateprivateprivateprivate JPanel buttonJPanel; JPanel buttonJPanel; JPanel buttonJPanel; JPanel buttonJPanel; // pa// pa// pa// paiiiinel nel nel nel ppppara armazenar botara armazenar botara armazenar botara armazenar botõesõesõesões
12 privateprivateprivateprivate JButton buttons[]; JButton buttons[]; JButton buttons[]; JButton buttons[]; // array // array // array // array ddddeeee b b b boooottttõesõesõesões
13
14 // // // // cccconstrutor sem onstrutor sem onstrutor sem onstrutor sem argumentargumentargumentargumentosososos
15 publicpublicpublicpublic PanelFrame() PanelFrame() PanelFrame() PanelFrame()
16 { { { {
17 supersupersupersuper( ( ( ( "Panel Demo""Panel Demo""Panel Demo""Panel Demo" ); ); ); );
18 buttons = buttons = buttons = buttons = newnewnewnew JButton[ JButton[ JButton[ JButton[ 5555 ]; ]; ]; ]; // cr// cr// cr// cria array de botia array de botia array de botia array de botõesõesõesões
19 buttonJPanel = buttonJPanel = buttonJPanel = buttonJPanel = newnewnewnew JPanel(); JPanel(); JPanel(); JPanel(); // // // // cccconfigura painelonfigura painelonfigura painelonfigura painel
20 buttonJPanel.setLayout( buttonJPanel.setLayout( buttonJPanel.setLayout( buttonJPanel.setLayout( newnewnewnew GridLayout( GridLayout( GridLayout( GridLayout( 1111, buttons.length ) );, buttons.length ) );, buttons.length ) );, buttons.length ) );
21
Declara um JPanel para conter os botões
Introdução à Tecnologia Java – 02/2012
Exemplo
1 // Fig. 11.45: PanelFrame.java// Fig. 11.45: PanelFrame.java// Fig. 11.45: PanelFrame.java// Fig. 11.45: PanelFrame.java
2 // // // // Utilizando um JPanel para ajudar a fazer o layout dos componentesUtilizando um JPanel para ajudar a fazer o layout dos componentesUtilizando um JPanel para ajudar a fazer o layout dos componentesUtilizando um JPanel para ajudar a fazer o layout dos componentes....
3 importimportimportimport java.awt.GridLayout; java.awt.GridLayout; java.awt.GridLayout; java.awt.GridLayout;
4 importimportimportimport java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout;
5 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
6 importimportimportimport javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel;
7 importimportimportimport javax.swing.JButton; javax.swing.JButton; javax.swing.JButton; javax.swing.JButton;
8
9 pubpubpubpubliclicliclic classclassclassclass PanelFrame PanelFrame PanelFrame PanelFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
Celso Olivete Júnior 259
9 pubpubpubpubliclicliclic classclassclassclass PanelFrame PanelFrame PanelFrame PanelFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
10 {{{{
11 privateprivateprivateprivate JPanel buttonJPanel; JPanel buttonJPanel; JPanel buttonJPanel; JPanel buttonJPanel; // pa// pa// pa// paiiiinel nel nel nel ppppara armazenar botara armazenar botara armazenar botara armazenar botõesõesõesões
12 privateprivateprivateprivate JButton buttons[]; JButton buttons[]; JButton buttons[]; JButton buttons[]; // array // array // array // array ddddeeee b b b boooottttõesõesõesões
13
14 // // // // cccconstrutor sem onstrutor sem onstrutor sem onstrutor sem argumentargumentargumentargumentosososos
15 publicpublicpublicpublic PanelFrame() PanelFrame() PanelFrame() PanelFrame()
16 { { { {
17 supersupersupersuper( ( ( ( "Panel Demo""Panel Demo""Panel Demo""Panel Demo" ); ); ); );
18 buttons = buttons = buttons = buttons = newnewnewnew JButton[ JButton[ JButton[ JButton[ 5555 ]; ]; ]; ]; // cr// cr// cr// cria array de botia array de botia array de botia array de botõesõesõesões
19 buttonJPanel = buttonJPanel = buttonJPanel = buttonJPanel = newnewnewnew JPanel(); JPanel(); JPanel(); JPanel(); // // // // cccconfigura painelonfigura painelonfigura painelonfigura painel
20 buttonJPanel.setLayout( buttonJPanel.setLayout( buttonJPanel.setLayout( buttonJPanel.setLayout( newnewnewnew GridLayout( GridLayout( GridLayout( GridLayout( 1111, buttons.length ) );, buttons.length ) );, buttons.length ) );, buttons.length ) );
21
Declara um JPanel para conter os botões
Cria o JPanel
Introdução à Tecnologia Java – 02/2012
Exemplo
1 // Fig. 11.45: PanelFrame.java// Fig. 11.45: PanelFrame.java// Fig. 11.45: PanelFrame.java// Fig. 11.45: PanelFrame.java
2 // // // // Utilizando um JPanel para ajudar a fazer o layout dos componentesUtilizando um JPanel para ajudar a fazer o layout dos componentesUtilizando um JPanel para ajudar a fazer o layout dos componentesUtilizando um JPanel para ajudar a fazer o layout dos componentes....
3 importimportimportimport java.awt.GridLayout; java.awt.GridLayout; java.awt.GridLayout; java.awt.GridLayout;
4 importimportimportimport java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout; java.awt.BorderLayout;
5 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
6 importimportimportimport javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel; javax.swing.JPanel;
7 importimportimportimport javax.swing.JButton; javax.swing.JButton; javax.swing.JButton; javax.swing.JButton;
8
9 pubpubpubpubliclicliclic classclassclassclass PanelFrame PanelFrame PanelFrame PanelFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
Celso Olivete Júnior 260
9 pubpubpubpubliclicliclic classclassclassclass PanelFrame PanelFrame PanelFrame PanelFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
10 {{{{
11 privateprivateprivateprivate JPanel buttonJPanel; JPanel buttonJPanel; JPanel buttonJPanel; JPanel buttonJPanel; // pa// pa// pa// paiiiinel nel nel nel ppppara armazenar botara armazenar botara armazenar botara armazenar botõesõesõesões
12 privateprivateprivateprivate JButton buttons[]; JButton buttons[]; JButton buttons[]; JButton buttons[]; // array // array // array // array ddddeeee b b b boooottttõesõesõesões
13
14 // // // // cccconstrutor sem onstrutor sem onstrutor sem onstrutor sem argumentargumentargumentargumentosososos
15 publicpublicpublicpublic PanelFrame() PanelFrame() PanelFrame() PanelFrame()
16 { { { {
17 supersupersupersuper( ( ( ( "Panel Demo""Panel Demo""Panel Demo""Panel Demo" ); ); ); );
18 buttons = buttons = buttons = buttons = newnewnewnew JButton[ JButton[ JButton[ JButton[ 5555 ]; ]; ]; ]; // cr// cr// cr// cria array de botia array de botia array de botia array de botõesõesõesões
19 buttonJPanel = buttonJPanel = buttonJPanel = buttonJPanel = newnewnewnew JPanel(); JPanel(); JPanel(); JPanel(); // // // // cccconfigura painelonfigura painelonfigura painelonfigura painel
20 buttonJPanel.setLayout( buttonJPanel.setLayout( buttonJPanel.setLayout( buttonJPanel.setLayout( newnewnewnew GridLayout( GridLayout( GridLayout( GridLayout( 1111, buttons.length ) );, buttons.length ) );, buttons.length ) );, buttons.length ) );
21
Declara um JPanel para conter os botões
Cria o JPanel
Configura o layout
Introdução à Tecnologia Java – 02/2012
Exemplo
22 // cr // cr // cr // criiiia e adiciona bota e adiciona bota e adiciona bota e adiciona botõesõesõesões
23 forforforfor ( ( ( ( intintintint count = count = count = count = 0000; count < buttons.length; count++ ) ; count < buttons.length; count++ ) ; count < buttons.length; count++ ) ; count < buttons.length; count++ )
24 { { { {
25 buttons[ count ] = buttons[ count ] = buttons[ count ] = buttons[ count ] = newnewnewnew JButton( JButton( JButton( JButton( "Button ""Button ""Button ""Button " + ( count + + ( count + + ( count + + ( count + 1111 ) ); ) ); ) ); ) );
26 buttonJPanel.add( buttons[ count ] ); buttonJPanel.add( buttons[ count ] ); buttonJPanel.add( buttons[ count ] ); buttonJPanel.add( buttons[ count ] ); // ad// ad// ad// adiiiiciona botciona botciona botciona botão ao painelão ao painelão ao painelão ao painel
27 } } } } // end for // end for // end for // end for
28 29 add( buttonJPanel, add( buttonJPanel, add( buttonJPanel, add( buttonJPanel, BorderLayout.SOUTHBorderLayout.SOUTHBorderLayout.SOUTHBorderLayout.SOUTH ); ); ); ); // ad// ad// ad// adiciona painel ao iciona painel ao iciona painel ao iciona painel ao JFrameJFrameJFrameJFrame
30 } } } } // // // // ffffim do construtorim do construtorim do construtorim do construtor PanelFrame PanelFrame PanelFrame PanelFrame
Adiciona um botão ao painel
Celso Olivete Júnior 261
30 } } } } // // // // ffffim do construtorim do construtorim do construtorim do construtor PanelFrame PanelFrame PanelFrame PanelFrame
31 } } } } // // // // ffffim da classeim da classeim da classeim da classe PanelFrame PanelFrame PanelFrame PanelFrame
Adiciona o painel à aplicação
Introdução à Tecnologia Java – 02/2012
Exemplo 1 // Fig. 11.46: PanelDemo.java// Fig. 11.46: PanelDemo.java// Fig. 11.46: PanelDemo.java// Fig. 11.46: PanelDemo.java
2 // Test// Test// Test// Testaaaandondondondo PanelFrame. PanelFrame. PanelFrame. PanelFrame.
3 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
4
5 publicpublicpublicpublic classclassclassclass PanelDemo PanelDemo PanelDemo PanelDemo extendsextendsextendsextends JFrame JFrame JFrame JFrame
6 {{{{
7 publicpublicpublicpublic staticstaticstaticstatic voidvoidvoidvoid main( String args[] ) main( String args[] ) main( String args[] ) main( String args[] )
8 { { { {
Celso Olivete Júnior 262
9 PanelFrame panelFrame = PanelFrame panelFrame = PanelFrame panelFrame = PanelFrame panelFrame = newnewnewnew PanelFrame(); PanelFrame(); PanelFrame(); PanelFrame();
10 panelFrame.setDefaultCloseOperation( panelFrame.setDefaultCloseOperation( panelFrame.setDefaultCloseOperation( panelFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSE ); ); ); );
11 panelFrame.setSize( panelFrame.setSize( panelFrame.setSize( panelFrame.setSize( 450450450450, , , , 200200200200 ); ); ); ); // // // // cccconfigura o tamanho doonfigura o tamanho doonfigura o tamanho doonfigura o tamanho do frame frame frame frame
12 panelFrame.setVisible( panelFrame.setVisible( panelFrame.setVisible( panelFrame.setVisible( truetruetruetrue ); ); ); ); // // // // eeeexibe o xibe o xibe o xibe o frameframeframeframe
13 } } } } // // // // ffffim de im de im de im de mainmainmainmain
14 }}}} // // // // ffffim da im da im da im da classclassclassclasseeee PanelDemo PanelDemo PanelDemo PanelDemo
Introdução à Tecnologia Java – 02/2012
JTextArea
• JTextArea:
•Fornece uma área para manipular múltiplas
linhas de texto.
•Contêiner Box:
•Subclasse de Container.
•Utiliza um gerenciador de layout BoxLayout.
Celso Olivete Júnior 263
Introdução à Tecnologia Java – 02/2012
Observação
• Para fornecer a funcionalidade de mudança
de linha automática para uma JTextArea,
invoque o método JTextArea setLine-Wrapinvoque o método JTextArea setLine-Wrap
com um argumento true.
Celso Olivete Júnior 264
Introdução à Tecnologia Java – 02/2012
Exemplo 3 importimportimportimport java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener;
4 importimportimportimport java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent;
5 importimportimportimport javax.swing.Box; javax.swing.Box; javax.swing.Box; javax.swing.Box;
6 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
7 importimportimportimport jav jav jav javax.swing.JTextArea;ax.swing.JTextArea;ax.swing.JTextArea;ax.swing.JTextArea;
8 importimportimportimport javax.swing.JButton; javax.swing.JButton; javax.swing.JButton; javax.swing.JButton;
9 importimportimportimport javax.swing.JScrollPane; javax.swing.JScrollPane; javax.swing.JScrollPane; javax.swing.JScrollPane;
10
11 publicpublicpublicpublic classclassclassclass TextAreaFrame TextAreaFrame TextAreaFrame TextAreaFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
12 {{{{
Celso Olivete Júnior 265
12 {{{{
13 privateprivateprivateprivate JTextArea textArea1; JTextArea textArea1; JTextArea textArea1; JTextArea textArea1; // // // // exibe string exibe string exibe string exibe string demodemodemodemo
14 privateprivateprivateprivate JTextArea textArea2; JTextArea textArea2; JTextArea textArea2; JTextArea textArea2; ///// / / / texto destacado é copiado aquitexto destacado é copiado aquitexto destacado é copiado aquitexto destacado é copiado aqui
15 privateprivateprivateprivate JButton copyJButton; JButton copyJButton; JButton copyJButton; JButton copyJButton; // // // // começa a copiar o textocomeça a copiar o textocomeça a copiar o textocomeça a copiar o texto
16
17 // construtor // construtor // construtor // construtor sem argumentos sem argumentos sem argumentos sem argumentos
18 publicpublicpublicpublic TextAreaFrame() TextAreaFrame() TextAreaFrame() TextAreaFrame()
19 { { { {
20 supersupersupersuper( ( ( ( "TextArea Demo""TextArea Demo""TextArea Demo""TextArea Demo" ); ); ); );
21 Box box = Box.createHorizBox box = Box.createHorizBox box = Box.createHorizBox box = Box.createHorizontalBox(); ontalBox(); ontalBox(); ontalBox(); // cr// cr// cr// criiiia boxa boxa boxa box
22 String demo = String demo = String demo = String demo = "This is a demo string to"This is a demo string to"This is a demo string to"This is a demo string to\\\\n" n" n" n" + + + +
23 "illustrate copying text"illustrate copying text"illustrate copying text"illustrate copying text\\\\nfrom one textarea to nfrom one textarea to nfrom one textarea to nfrom one textarea to \\\\n"n"n"n" + + + +
24 "another textarea using an"another textarea using an"another textarea using an"another textarea using an\\\\nexternal eventnexternal eventnexternal eventnexternal event\\\\n"n"n"n";;;;
25
26 textArea1 = textArea1 = textArea1 = textArea1 = newnewnewnew JTextArea( dem JTextArea( dem JTextArea( dem JTextArea( demo, o, o, o, 10101010, , , , 15151515 ); ); ); ); // cr// cr// cr// criaiaiaia textarea1 textarea1 textarea1 textarea1
27 box.add( box.add( box.add( box.add( newnewnewnew JScrollPane( textArea1 ) ); JScrollPane( textArea1 ) ); JScrollPane( textArea1 ) ); JScrollPane( textArea1 ) ); // ad// ad// ad// adicionaicionaicionaiciona scrollpane scrollpane scrollpane scrollpane
28
Introdução à Tecnologia Java – 02/2012
Exemplo 3 importimportimportimport java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener;
4 importimportimportimport java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent;
5 importimportimportimport javax.swing.Box; javax.swing.Box; javax.swing.Box; javax.swing.Box;
6 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
7 importimportimportimport jav jav jav javax.swing.JTextArea;ax.swing.JTextArea;ax.swing.JTextArea;ax.swing.JTextArea;
8 importimportimportimport javax.swing.JButton; javax.swing.JButton; javax.swing.JButton; javax.swing.JButton;
9 importimportimportimport javax.swing.JScrollPane; javax.swing.JScrollPane; javax.swing.JScrollPane; javax.swing.JScrollPane;
10
11 publicpublicpublicpublic classclassclassclass TextAreaFrame TextAreaFrame TextAreaFrame TextAreaFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
12 {{{{
Declara as variáveis de instância
JTextArea
Celso Olivete Júnior 266
12 {{{{
13 privateprivateprivateprivate JTextArea textArea1; JTextArea textArea1; JTextArea textArea1; JTextArea textArea1; // // // // exibe string exibe string exibe string exibe string demodemodemodemo
14 privateprivateprivateprivate JTextArea textArea2; JTextArea textArea2; JTextArea textArea2; JTextArea textArea2; ///// / / / texto destacado é copiado aquitexto destacado é copiado aquitexto destacado é copiado aquitexto destacado é copiado aqui
15 privateprivateprivateprivate JButton copyJButton; JButton copyJButton; JButton copyJButton; JButton copyJButton; // // // // começa a copiar o textocomeça a copiar o textocomeça a copiar o textocomeça a copiar o texto
16
17 // construtor // construtor // construtor // construtor sem argumentos sem argumentos sem argumentos sem argumentos
18 publicpublicpublicpublic TextAreaFrame() TextAreaFrame() TextAreaFrame() TextAreaFrame()
19 { { { {
20 supersupersupersuper( ( ( ( "TextArea Demo""TextArea Demo""TextArea Demo""TextArea Demo" ); ); ); );
21 Box box = Box.createHorizBox box = Box.createHorizBox box = Box.createHorizBox box = Box.createHorizontalBox(); ontalBox(); ontalBox(); ontalBox(); // cr// cr// cr// criiiia boxa boxa boxa box
22 String demo = String demo = String demo = String demo = "This is a demo string to"This is a demo string to"This is a demo string to"This is a demo string to\\\\n" n" n" n" + + + +
23 "illustrate copying text"illustrate copying text"illustrate copying text"illustrate copying text\\\\nfrom one textarea to nfrom one textarea to nfrom one textarea to nfrom one textarea to \\\\n"n"n"n" + + + +
24 "another textarea using an"another textarea using an"another textarea using an"another textarea using an\\\\nexternal eventnexternal eventnexternal eventnexternal event\\\\n"n"n"n";;;;
25
26 textArea1 = textArea1 = textArea1 = textArea1 = newnewnewnew JTextArea( dem JTextArea( dem JTextArea( dem JTextArea( demo, o, o, o, 10101010, , , , 15151515 ); ); ); ); // cr// cr// cr// criaiaiaia textarea1 textarea1 textarea1 textarea1
27 box.add( box.add( box.add( box.add( newnewnewnew JScrollPane( textArea1 ) ); JScrollPane( textArea1 ) ); JScrollPane( textArea1 ) ); JScrollPane( textArea1 ) ); // ad// ad// ad// adicionaicionaicionaiciona scrollpane scrollpane scrollpane scrollpane
28
Introdução à Tecnologia Java – 02/2012
Exemplo 3 importimportimportimport java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener;
4 importimportimportimport java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent;
5 importimportimportimport javax.swing.Box; javax.swing.Box; javax.swing.Box; javax.swing.Box;
6 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
7 importimportimportimport jav jav jav javax.swing.JTextArea;ax.swing.JTextArea;ax.swing.JTextArea;ax.swing.JTextArea;
8 importimportimportimport javax.swing.JButton; javax.swing.JButton; javax.swing.JButton; javax.swing.JButton;
9 importimportimportimport javax.swing.JScrollPane; javax.swing.JScrollPane; javax.swing.JScrollPane; javax.swing.JScrollPane;
10
11 publicpublicpublicpublic classclassclassclass TextAreaFrame TextAreaFrame TextAreaFrame TextAreaFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
12 {{{{
Declara as variáveis de instância
JTextArea
Celso Olivete Júnior 267
12 {{{{
13 privateprivateprivateprivate JTextArea textArea1; JTextArea textArea1; JTextArea textArea1; JTextArea textArea1; // // // // exibe string exibe string exibe string exibe string demodemodemodemo
14 privateprivateprivateprivate JTextArea textArea2; JTextArea textArea2; JTextArea textArea2; JTextArea textArea2; ///// / / / texto destacado é copiado aquitexto destacado é copiado aquitexto destacado é copiado aquitexto destacado é copiado aqui
15 privateprivateprivateprivate JButton copyJButton; JButton copyJButton; JButton copyJButton; JButton copyJButton; // // // // começa a copiar o textocomeça a copiar o textocomeça a copiar o textocomeça a copiar o texto
16
17 // construtor // construtor // construtor // construtor sem argumentos sem argumentos sem argumentos sem argumentos
18 publicpublicpublicpublic TextAreaFrame() TextAreaFrame() TextAreaFrame() TextAreaFrame()
19 { { { {
20 supersupersupersuper( ( ( ( "TextArea Demo""TextArea Demo""TextArea Demo""TextArea Demo" ); ); ); );
21 Box box = Box.createHorizBox box = Box.createHorizBox box = Box.createHorizBox box = Box.createHorizontalBox(); ontalBox(); ontalBox(); ontalBox(); // cr// cr// cr// criiiia boxa boxa boxa box
22 String demo = String demo = String demo = String demo = "This is a demo string to"This is a demo string to"This is a demo string to"This is a demo string to\\\\n" n" n" n" + + + +
23 "illustrate copying text"illustrate copying text"illustrate copying text"illustrate copying text\\\\nfrom one textarea to nfrom one textarea to nfrom one textarea to nfrom one textarea to \\\\n"n"n"n" + + + +
24 "another textarea using an"another textarea using an"another textarea using an"another textarea using an\\\\nexternal eventnexternal eventnexternal eventnexternal event\\\\n"n"n"n";;;;
25
26 textArea1 = textArea1 = textArea1 = textArea1 = newnewnewnew JTextArea( dem JTextArea( dem JTextArea( dem JTextArea( demo, o, o, o, 10101010, , , , 15151515 ); ); ); ); // cr// cr// cr// criaiaiaia textarea1 textarea1 textarea1 textarea1
27 box.add( box.add( box.add( box.add( newnewnewnew JScrollPane( textArea1 ) ); JScrollPane( textArea1 ) ); JScrollPane( textArea1 ) ); JScrollPane( textArea1 ) ); // ad// ad// ad// adicionaicionaicionaiciona scrollpane scrollpane scrollpane scrollpane
28
Cria um contêiner Box
Introdução à Tecnologia Java – 02/2012
Exemplo 3 importimportimportimport java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener; java.awt.event.ActionListener;
4 importimportimportimport java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent; java.awt.event.ActionEvent;
5 importimportimportimport javax.swing.Box; javax.swing.Box; javax.swing.Box; javax.swing.Box;
6 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
7 importimportimportimport jav jav jav javax.swing.JTextArea;ax.swing.JTextArea;ax.swing.JTextArea;ax.swing.JTextArea;
8 importimportimportimport javax.swing.JButton; javax.swing.JButton; javax.swing.JButton; javax.swing.JButton;
9 importimportimportimport javax.swing.JScrollPane; javax.swing.JScrollPane; javax.swing.JScrollPane; javax.swing.JScrollPane;
10
11 publicpublicpublicpublic classclassclassclass TextAreaFrame TextAreaFrame TextAreaFrame TextAreaFrame extendsextendsextendsextends JFrame JFrame JFrame JFrame
12 {{{{
Declara as variáveis de instância
JTextArea
Celso Olivete Júnior 268
12 {{{{
13 privateprivateprivateprivate JTextArea textArea1; JTextArea textArea1; JTextArea textArea1; JTextArea textArea1; // // // // exibe string exibe string exibe string exibe string demodemodemodemo
14 privateprivateprivateprivate JTextArea textArea2; JTextArea textArea2; JTextArea textArea2; JTextArea textArea2; ///// / / / texto destacado é copiado aquitexto destacado é copiado aquitexto destacado é copiado aquitexto destacado é copiado aqui
15 privateprivateprivateprivate JButton copyJButton; JButton copyJButton; JButton copyJButton; JButton copyJButton; // // // // começa a copiar o textocomeça a copiar o textocomeça a copiar o textocomeça a copiar o texto
16
17 // construtor // construtor // construtor // construtor sem argumentos sem argumentos sem argumentos sem argumentos
18 publicpublicpublicpublic TextAreaFrame() TextAreaFrame() TextAreaFrame() TextAreaFrame()
19 { { { {
20 supersupersupersuper( ( ( ( "TextArea Demo""TextArea Demo""TextArea Demo""TextArea Demo" ); ); ); );
21 Box box = Box.createHorizBox box = Box.createHorizBox box = Box.createHorizBox box = Box.createHorizontalBox(); ontalBox(); ontalBox(); ontalBox(); // cr// cr// cr// criiiia boxa boxa boxa box
22 String demo = String demo = String demo = String demo = "This is a demo string to"This is a demo string to"This is a demo string to"This is a demo string to\\\\n" n" n" n" + + + +
23 "illustrate copying text"illustrate copying text"illustrate copying text"illustrate copying text\\\\nfrom one textarea to nfrom one textarea to nfrom one textarea to nfrom one textarea to \\\\n"n"n"n" + + + +
24 "another textarea using an"another textarea using an"another textarea using an"another textarea using an\\\\nexternal eventnexternal eventnexternal eventnexternal event\\\\n"n"n"n";;;;
25
26 textArea1 = textArea1 = textArea1 = textArea1 = newnewnewnew JTextArea( dem JTextArea( dem JTextArea( dem JTextArea( demo, o, o, o, 10101010, , , , 15151515 ); ); ); ); // cr// cr// cr// criaiaiaia textarea1 textarea1 textarea1 textarea1
27 box.add( box.add( box.add( box.add( newnewnewnew JScrollPane( textArea1 ) ); JScrollPane( textArea1 ) ); JScrollPane( textArea1 ) ); JScrollPane( textArea1 ) ); // ad// ad// ad// adicionaicionaicionaiciona scrollpane scrollpane scrollpane scrollpane
28
Cria um contêiner Box
Cria uma área de texto e a adiciona
à caixa
Introdução à Tecnologia Java – 02/2012
Exemplo
29 copyJButton = copyJButton = copyJButton = copyJButton = newnewnewnew JButton( JButton( JButton( JButton( "Copy >>>""Copy >>>""Copy >>>""Copy >>>" ); ); ); ); // cr// cr// cr// cria botão de cópiaia botão de cópiaia botão de cópiaia botão de cópia
30 box.add( copyJButton ); box.add( copyJButton ); box.add( copyJButton ); box.add( copyJButton ); // // // // adiciona o botão de cópia à boxadiciona o botão de cópia à boxadiciona o botão de cópia à boxadiciona o botão de cópia à box
31 copyJButton.addActionListener( copyJButton.addActionListener( copyJButton.addActionListener( copyJButton.addActionListener(
32
33 newnewnewnew ActionListener() ActionListener() ActionListener() ActionListener() // // // // classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
34 { { { {
35 // // // // configura texto em textArea2 como texto selecionado de textArea1configura texto em textArea2 como texto selecionado de textArea1configura texto em textArea2 como texto selecionado de textArea1configura texto em textArea2 como texto selecionado de textArea1
36 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
Adiciona o botão à caixa
Celso Olivete Júnior 269
36 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
37 { { { {
38 textArea2.setText( textArea1.getSelectedText() );textArea2.setText( textArea1.getSelectedText() );textArea2.setText( textArea1.getSelectedText() );textArea2.setText( textArea1.getSelectedText() );
39 } } } } // // // // fim do método fim do método fim do método fim do método actionPerformedactionPerformedactionPerformedactionPerformed
40 } } } } // // // // fim dafim dafim dafim da classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
41 ); ); ); ); // // // // fim da chamada parafim da chamada parafim da chamada parafim da chamada para addActionListener addActionListener addActionListener addActionListener
42
43 textArea2 = textArea2 = textArea2 = textArea2 = newnewnewnew JTextArea( JTextArea( JTextArea( JTextArea( 10101010, , , , 15151515 ); ); ); ); // cr// cr// cr// cria segunda ia segunda ia segunda ia segunda textareatextareatextareatextarea
44 textArea2.textArea2.textArea2.textArea2.setEditable( setEditable( setEditable( setEditable( falsefalsefalsefalse ); ); ); ); // // // // desativa a ediçãodesativa a ediçãodesativa a ediçãodesativa a edição
45 box.add( box.add( box.add( box.add( newnewnewnew JScrollPane( textArea2 ) ); JScrollPane( textArea2 ) ); JScrollPane( textArea2 ) ); JScrollPane( textArea2 ) ); // ad// ad// ad// adicionaicionaicionaiciona scrollpane scrollpane scrollpane scrollpane
46
47 add( box ); add( box ); add( box ); add( box ); // ad// ad// ad// adiciona iciona iciona iciona box box box box ao frameao frameao frameao frame
48 } } } } // // // // fim do construtorfim do construtorfim do construtorfim do construtor TextAreaFrame TextAreaFrame TextAreaFrame TextAreaFrame
49 } } } } // // // // fim da classe fim da classe fim da classe fim da classe TextAreaFrTextAreaFrTextAreaFrTextAreaFrameameameame
Introdução à Tecnologia Java – 02/2012
Exemplo
29 copyJButton = copyJButton = copyJButton = copyJButton = newnewnewnew JButton( JButton( JButton( JButton( "Copy >>>""Copy >>>""Copy >>>""Copy >>>" ); ); ); ); // cr// cr// cr// cria botão de cópiaia botão de cópiaia botão de cópiaia botão de cópia
30 box.add( copyJButton ); box.add( copyJButton ); box.add( copyJButton ); box.add( copyJButton ); // // // // adiciona o botão de cópia à boxadiciona o botão de cópia à boxadiciona o botão de cópia à boxadiciona o botão de cópia à box
31 copyJButton.addActionListener( copyJButton.addActionListener( copyJButton.addActionListener( copyJButton.addActionListener(
32
33 newnewnewnew ActionListener() ActionListener() ActionListener() ActionListener() // // // // classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
34 { { { {
35 // // // // configura texto em textArea2 como texto selecionado de textArea1configura texto em textArea2 como texto selecionado de textArea1configura texto em textArea2 como texto selecionado de textArea1configura texto em textArea2 como texto selecionado de textArea1
36 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
Adiciona o botão à caixa
Celso Olivete Júnior 270
36 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
37 { { { {
38 textArea2.setText( textArea1.getSelectedText() );textArea2.setText( textArea1.getSelectedText() );textArea2.setText( textArea1.getSelectedText() );textArea2.setText( textArea1.getSelectedText() );
39 } } } } // // // // fim do método fim do método fim do método fim do método actionPerformedactionPerformedactionPerformedactionPerformed
40 } } } } // // // // fim dafim dafim dafim da classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
41 ); ); ); ); // // // // fim da chamada parafim da chamada parafim da chamada parafim da chamada para addActionListener addActionListener addActionListener addActionListener
42
43 textArea2 = textArea2 = textArea2 = textArea2 = newnewnewnew JTextArea( JTextArea( JTextArea( JTextArea( 10101010, , , , 15151515 ); ); ); ); // cr// cr// cr// cria segunda ia segunda ia segunda ia segunda textareatextareatextareatextarea
44 textArea2.textArea2.textArea2.textArea2.setEditable( setEditable( setEditable( setEditable( falsefalsefalsefalse ); ); ); ); // // // // desativa a ediçãodesativa a ediçãodesativa a ediçãodesativa a edição
45 box.add( box.add( box.add( box.add( newnewnewnew JScrollPane( textArea2 ) ); JScrollPane( textArea2 ) ); JScrollPane( textArea2 ) ); JScrollPane( textArea2 ) ); // ad// ad// ad// adicionaicionaicionaiciona scrollpane scrollpane scrollpane scrollpane
46
47 add( box ); add( box ); add( box ); add( box ); // ad// ad// ad// adiciona iciona iciona iciona box box box box ao frameao frameao frameao frame
48 } } } } // // // // fim do construtorfim do construtorfim do construtorfim do construtor TextAreaFrame TextAreaFrame TextAreaFrame TextAreaFrame
49 } } } } // // // // fim da classe fim da classe fim da classe fim da classe TextAreaFrTextAreaFrTextAreaFrTextAreaFrameameameame
Copia o texto selecionado de uma
área de texto para outra
Introdução à Tecnologia Java – 02/2012
Exemplo
29 copyJButton = copyJButton = copyJButton = copyJButton = newnewnewnew JButton( JButton( JButton( JButton( "Copy >>>""Copy >>>""Copy >>>""Copy >>>" ); ); ); ); // cr// cr// cr// cria botão de cópiaia botão de cópiaia botão de cópiaia botão de cópia
30 box.add( copyJButton ); box.add( copyJButton ); box.add( copyJButton ); box.add( copyJButton ); // // // // adiciona o botão de cópia à boxadiciona o botão de cópia à boxadiciona o botão de cópia à boxadiciona o botão de cópia à box
31 copyJButton.addActionListener( copyJButton.addActionListener( copyJButton.addActionListener( copyJButton.addActionListener(
32
33 newnewnewnew ActionListener() ActionListener() ActionListener() ActionListener() // // // // classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
34 { { { {
35 // // // // configura texto em textArea2 como texto selecionado de textArea1configura texto em textArea2 como texto selecionado de textArea1configura texto em textArea2 como texto selecionado de textArea1configura texto em textArea2 como texto selecionado de textArea1
36 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
Adiciona o botão à caixa
Celso Olivete Júnior 271
36 publicpublicpublicpublic voidvoidvoidvoid actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event ) actionPerformed( ActionEvent event )
37 { { { {
38 textArea2.setText( textArea1.getSelectedText() );textArea2.setText( textArea1.getSelectedText() );textArea2.setText( textArea1.getSelectedText() );textArea2.setText( textArea1.getSelectedText() );
39 } } } } // // // // fim do método fim do método fim do método fim do método actionPerformedactionPerformedactionPerformedactionPerformed
40 } } } } // // // // fim dafim dafim dafim da classe interna anônimaclasse interna anônimaclasse interna anônimaclasse interna anônima
41 ); ); ); ); // // // // fim da chamada parafim da chamada parafim da chamada parafim da chamada para addActionListener addActionListener addActionListener addActionListener
42
43 textArea2 = textArea2 = textArea2 = textArea2 = newnewnewnew JTextArea( JTextArea( JTextArea( JTextArea( 10101010, , , , 15151515 ); ); ); ); // cr// cr// cr// cria segunda ia segunda ia segunda ia segunda textareatextareatextareatextarea
44 textArea2.textArea2.textArea2.textArea2.setEditable( setEditable( setEditable( setEditable( falsefalsefalsefalse ); ); ); ); // // // // desativa a ediçãodesativa a ediçãodesativa a ediçãodesativa a edição
45 box.add( box.add( box.add( box.add( newnewnewnew JScrollPane( textArea2 ) ); JScrollPane( textArea2 ) ); JScrollPane( textArea2 ) ); JScrollPane( textArea2 ) ); // ad// ad// ad// adicionaicionaicionaiciona scrollpane scrollpane scrollpane scrollpane
46
47 add( box ); add( box ); add( box ); add( box ); // ad// ad// ad// adiciona iciona iciona iciona box box box box ao frameao frameao frameao frame
48 } } } } // // // // fim do construtorfim do construtorfim do construtorfim do construtor TextAreaFrame TextAreaFrame TextAreaFrame TextAreaFrame
49 } } } } // // // // fim da classe fim da classe fim da classe fim da classe TextAreaFrTextAreaFrTextAreaFrTextAreaFrameameameame
Copia o texto selecionado de uma
área de texto para outra
Cria uma segunda área de texto e a
adiciona à caixa
Introdução à Tecnologia Java – 02/2012
Exemplo 1 // Fig. 11.48: TextAreaDemo.java// Fig. 11.48: TextAreaDemo.java// Fig. 11.48: TextAreaDemo.java// Fig. 11.48: TextAreaDemo.java
2 // Cop// Cop// Cop// Copiiiiandoandoandoando texto texto texto texto selecselecselecselecionado ionado ionado ionado de umade umade umade uma textarea textarea textarea textarea ppppara aara aara aara a outra outra outra outra. . . .
3 importimportimportimport javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame; javax.swing.JFrame;
4
5 publicpublicpublicpublic classclassclassclass TextAreaDemo TextAreaDemo TextAreaDemo TextAreaDemo
6 {{{{
7 publicpublicpublicpublic staticstaticstaticstatic voidvoidvoidvoid main( String args[] ) main( String args[] ) main( String args[] ) main( String args[] )
8 { { { {
9 TextAreaFrame textAr TextAreaFrame textAr TextAreaFrame textAr TextAreaFrame textAreaFrame = eaFrame = eaFrame = eaFrame = newnewnewnew TextAreaFrame(); TextAreaFrame(); TextAreaFrame(); TextAreaFrame();
Celso Olivete Júnior 272
9 TextAreaFrame textAr TextAreaFrame textAr TextAreaFrame textAr TextAreaFrame textAreaFrame = eaFrame = eaFrame = eaFrame = newnewnewnew TextAreaFrame(); TextAreaFrame(); TextAreaFrame(); TextAreaFrame();
10 textAreaFrame.setDefaultCloseOperation( textAreaFrame.setDefaultCloseOperation( textAreaFrame.setDefaultCloseOperation( textAreaFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSEJFrame.EXIT_ON_CLOSE ); ); ); );
11 textAreaFrame.setSize( textAreaFrame.setSize( textAreaFrame.setSize( textAreaFrame.setSize( 425425425425, , , , 200200200200 ); ); ); ); // // // // cccconfigura o tamanho doonfigura o tamanho doonfigura o tamanho doonfigura o tamanho do frame frame frame frame
12 textAreaFrame.setVisible( textAreaFrame.setVisible( textAreaFrame.setVisible( textAreaFrame.setVisible( truetruetruetrue ); ); ); ); // // // // eeeexibe o xibe o xibe o xibe o frameframeframeframe
13 } } } } // // // // ffffim de im de im de im de mainmainmainmain
14 } } } } // // // // ffffim da im da im da im da classclassclassclasseeee TextAreaDemo TextAreaDemo TextAreaDemo TextAreaDemo
Introdução à Tecnologia Java – 02/2012
Exemplo
Celso Olivete Júnior 273
Introdução à Tecnologia Java – 02/2012
Barra de Rolagem
• JScrollPane tem diretivas de barra de rolagem:
•Diretivas horizontais:•Sempre (HORIZONTAL_SCROLLBAR_ALWAYS).
•Conforme necessário(HORIZONTAL_SCROLLBAR_AS_NEEDED).(HORIZONTAL_SCROLLBAR_AS_NEEDED).
•Nunca (HORIZONTAL_SCROLLBAR_NEVER).
•Diretivas verticais:•Sempre (VERTICAL_SCROLLBAR_ALWAYS).
•Conforme necessário (VERTICAL_SCROLLBAR_AS_NEEDED).
•Nunca (VERTICAL_SCROLLBAR_NEVER).
Celso Olivete Júnior 274
Introdução à Tecnologia Java – 02/2012
NetBeans IDE
Celso Olivete Júnior 275
Introdução à Tecnologia Java – 02/2012
Exercícios
• fazer todos os exemplos em um único
projeto. A forma de acesso a cada um deles
deverá ser realizada por um componentedeverá ser realizada por um componente
JMenu
Celso Olivete Júnior 276