Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 ·...

276
Introdução à Tecnologia Java – 02/2012 Java – Aula 03 Continuação de interfaces Continuação de interfaces gráficas – GUI Swing 29/08/2012 Celso Olivete Júnior [email protected] 1

Transcript of Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 ·...

Page 1: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

[email protected]

1

Page 2: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 3: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

Introdução à Tecnologia Java – 02/2012

Sistema de coordenadas do Java: unidades

em pixels

Celso Olivete Júnior 3

Page 4: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 5: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

Introdução à Tecnologia Java – 02/2012

Exemplo: Linhas que se estendem a partir de

um canto

Celso Olivete Júnior 5

5

Page 6: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 7: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 8: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 9: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 10: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 11: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 12: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 13: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 14: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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:

Page 15: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 16: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 17: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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)

Page 18: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 19: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

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

Page 20: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

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

Page 21: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

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

Page 22: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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)

Page 23: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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..

Page 24: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 25: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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.

Page 26: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces 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

Page 27: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 28: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 29: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 30: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

Introdução à Tecnologia Java – 02/2012

Superclasses comuns de muitos dos

componentes do Swing

Celso Olivete Júnior 30

Page 31: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 32: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 33: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 34: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 35: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 36: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 37: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 38: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 39: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 40: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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);

Page 41: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 42: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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.

Page 43: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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);

Page 44: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 45: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 46: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 47: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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), ...

Page 48: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 49: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 50: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 51: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 52: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 53: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 54: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 55: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 56: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 57: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 58: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 59: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 60: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 61: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 62: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 63: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

Introdução à Tecnologia Java – 02/2012

Exemplo

Celso Olivete Júnior 63

Page 64: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 65: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 66: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 67: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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), ...

Page 68: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 69: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 70: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 71: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 72: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

Introdução à Tecnologia Java – 02/2012

Algumas classes de evento do pacote

java.awt.event.

Celso Olivete Júnior 72

Page 73: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

Introdução à Tecnologia Java – 02/2012

Interfaces ouvintes

Algumas interfaces ouvintes de eventos comuns do pacote java.awt.event.

Celso Olivete Júnior 73

Page 74: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 75: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 76: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

Introdução à Tecnologia Java – 02/2012

Registro de evento para

JTextField textField1

Celso Olivete Júnior 76

Page 77: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 78: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 79: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 80: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

Introdução à Tecnologia Java – 02/2012

Hierarquia do botão Swing

Celso Olivete Júnior 80

Page 81: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 82: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 83: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 84: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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.

Page 85: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 86: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 87: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 88: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 89: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 90: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 91: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

Introdução à Tecnologia Java – 02/2012

Resumo

Celso Olivete Júnior 91

Page 92: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 93: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 94: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 95: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 96: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 97: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 98: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 99: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 100: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 101: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 102: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 103: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 104: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 105: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 106: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 107: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 108: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 109: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 110: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 111: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 112: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 113: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 114: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 115: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 116: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 117: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 118: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 119: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 120: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 121: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 122: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 123: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 124: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 125: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 126: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 127: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 128: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 129: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 130: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 131: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 132: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 133: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 134: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 135: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 136: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 137: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 138: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 139: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 140: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 141: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 142: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 143: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 144: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 145: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 146: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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.

Page 147: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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.

Page 148: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 149: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 150: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 151: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 152: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 153: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 154: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 155: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 156: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 157: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 158: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 159: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 160: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 161: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 162: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 163: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 164: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 165: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 166: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 167: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 168: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 169: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

Introdução à Tecnologia Java – 02/2012

Resumo

Celso Olivete Júnior 169

Page 170: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 171: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 172: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 173: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 174: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 175: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 176: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 177: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 178: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 179: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

Introdução à Tecnologia Java – 02/2012

Exemplo

Celso Olivete Júnior 179

Page 180: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 181: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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.

Page 182: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 183: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 184: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 185: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 186: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 187: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 188: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 189: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 190: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 191: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 192: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 193: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 194: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 195: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 196: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 197: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

Introdução à Tecnologia Java – 02/2012

Exemplo

Celso Olivete Júnior 197

Page 198: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 199: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 200: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 201: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 202: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 203: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 204: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 205: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 206: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 207: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 208: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 209: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 210: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 211: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 212: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 213: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 214: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

Introdução à Tecnologia Java – 02/2012

Exemplo

Celso Olivete Júnior 214

Page 215: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 216: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 217: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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.

Page 218: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 219: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 220: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 221: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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 ); ); ); );

Page 222: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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 ); ); ); );

Page 223: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 224: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 225: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 226: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 227: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 228: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 229: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 230: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 231: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 232: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

Introdução à Tecnologia Java – 02/2012

Exemplo

Celso Olivete Júnior 232

Page 233: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 234: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 235: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 236: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 237: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 238: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 239: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 240: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 241: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 242: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 243: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 244: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 245: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

Introdução à Tecnologia Java – 02/2012

Exemplo

Celso Olivete Júnior 245

Page 246: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 247: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 248: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 249: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 250: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 251: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 252: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 253: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 254: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 255: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 256: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 257: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 258: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 259: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 260: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 261: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 262: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 263: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 264: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 265: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 266: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 267: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 268: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 269: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 270: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 271: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 272: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 273: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

Introdução à Tecnologia Java – 02/2012

Exemplo

Celso Olivete Júnior 273

Page 274: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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

Page 275: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

Introdução à Tecnologia Java – 02/2012

NetBeans IDE

Celso Olivete Júnior 275

Page 276: Java –Aula 03docs.fct.unesp.br/docentes/dmec/olivete/java/arquivos/... · 2012-08-29 · Introdução à Tecnologia Java –02/2012 Java –Aula 03 Continuação de interfaces gráficas

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