1 programação visual em java. 2 sumário introdução contentores componentes layouts eventos...

42
1 Programação Visual em Java

Upload: internet

Post on 18-Apr-2015

107 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

1

Programação Visual em Java

Page 2: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

2

Sumário

Introdução Contentores Componentes Layouts Eventos Exemplos

Page 3: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

3

Introdução Interfaces gráficas são compostas

por: Contentores

Janelas, painéis Componentes

botões, menus, caixas de texto layouts

Disposição dos componentes nos contentores Eventos

Rato, teclado, sistema operativo

Page 4: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

4

Introdução (Graphical User Interface - Interface

Gráfica do Utilizador) : AWT (Abstract Window Toolkit)

Infra-estrutura mínima de interface gráfica É implementada sobre componentes

nativos do sistema operativo. Limitado em recurso Diferentes plataformas possuem aparência

diferente Bugs e incompatibilidades entre

plataformas

Page 5: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

5

Introdução JFC (Java Foundation Classes)

Implementado inteiramente em Java. Oferece uma interface muito mais rica e

componentes mais flexíveis. É preciso importar java.awt e java.swing para usar a

JFC suporta:

definição de botões, menus, etc desenho 2D (java.awt.geom) funcionalidades drag-and-drop (java.awt.dnd) API com acessibilidade a usuários (javax.accessibility

Page 6: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

6

Histórico Java 1.0

Interface executa de forma medíocre em todas as plataformas

Modelo de eventos arcaico Java 1.1

Melhora o modelo de eventos por delegação usando o design pattern Observer

Java 1.2 JFC/Swing substitui totalmente os

componentes AWT Mantém e estende a interface de eventos e

layout

Page 7: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

7

Componentes Todos os elementos de uma aplicação são

componentes Principais métodos (chamados pelo sistema):

void paint (java.awt.Graphics g) void repaint() void update (java.awt.Graphics g)

Outros métodos importantes: getSize() e setSize () getLocation e setLocation getForeground e setForeground getFont e setFont setEnable setVisible

Page 8: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

8

contentores

Aplicações

Page 9: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

9

Hierarquia de classes:

Page 10: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

10

Classes Contentoras Frame (AWT) e JFrame (Swing)

Servem de base para qualquer aplicação gráfica possui uma barra de título e características para

receber menus e outros componentes. Applet e JApplet

Tipo de Panel (JPanel) que serve de base para aplicações que se executam dentro de browsers

Pode ser inserido dentro de uma página HTML e ocupar o contexto gráfico do browser

Dialog e JDialog Usada para definir janelas de diálogo para entrada

de dados

Page 11: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

11

Aplicações visuais Aplicações gráficas em Java:

Applets: componentes iniciados via browser

Aplicações stand alone iniciados pelo sistema operativo

Capturam eventos do sistema Rato, teclado, . . .

Desenham-se sobre um contexto gráfico fornecido pelo Sistema operativo

Aplicação gráfica Browser

Fornece os recursos gráficos Controla o seu ciclo de vida

Inicio, fim, . . . Possuem restrições de segurança

Page 12: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

12

Ola windows

Programa OlaWindowsPrograma OlaWindows

public class OlaWindows extends javax.swing.JFrame{public class OlaWindows extends javax.swing.JFrame{ public OlaWindows(String nome) {public OlaWindows(String nome) {

super(nome);super(nome);this.setSize(400,350);this.setSize(400,350);this.setVisible(true);this.setVisible(true);

}}public static void main(String[] args) {public static void main(String[] args) {

new OlaWindows(" Ola Windows");new OlaWindows(" Ola Windows");}}

}}

public class OlaWindows extends javax.swing.JFrame{public class OlaWindows extends javax.swing.JFrame{ public OlaWindows(String nome) {public OlaWindows(String nome) {

super(nome);super(nome);this.setSize(400,350);this.setSize(400,350);this.setVisible(true);this.setVisible(true);

}}public static void main(String[] args) {public static void main(String[] args) {

new OlaWindows(" Ola Windows");new OlaWindows(" Ola Windows");}}

}}

Page 13: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

13

Ola Applet

Programa OlaAppletPrograma OlaApplet

public class OlaApplet extends JApplet{public class OlaApplet extends JApplet{ public void paint(Graphics g){public void paint(Graphics g){ g.drawString("Ola Applet",10,100);g.drawString("Ola Applet",10,100); }}}}

public class OlaApplet extends JApplet{public class OlaApplet extends JApplet{ public void paint(Graphics g){public void paint(Graphics g){ g.drawString("Ola Applet",10,100);g.drawString("Ola Applet",10,100); }}}}

Página HTMLPágina HTML

<html><html> <body> <body>

<APPLET code="<APPLET code="OlaApplet.classOlaApplet.class" width=350 height=200> " width=350 height=200> </APPLET></APPLET></body></body></html></html>

<html><html> <body> <body>

<APPLET code="<APPLET code="OlaApplet.classOlaApplet.class" width=350 height=200> " width=350 height=200> </APPLET></APPLET></body></body></html></html>

Page 14: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

14

Applets: ciclo de vida

Não têm função main

Page 15: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

15

Ola Applet

Programa OlaAppletPrograma OlaApplet

public class OlaApplet extends JApplet{public class OlaApplet extends JApplet{ StringBuffer msg ;StringBuffer msg ; public void init(){public void init(){ msg = new StringBuffer();msg = new StringBuffer(); msg.append("Iniciando o Applet . . .");msg.append("Iniciando o Applet . . ."); }} public void start(){public void start(){ msg.append("Começando o Applet . . .");msg.append("Começando o Applet . . ."); }} public void stop(){public void stop(){ msg.append("Parando o Applet . . .");msg.append("Parando o Applet . . ."); }} public void destroy(){public void destroy(){ msg.append("Destruindo o Applet . . .");msg.append("Destruindo o Applet . . ."); }} public void paint(Graphics g){public void paint(Graphics g){ g.drawString(msg.toString(),10,100);g.drawString(msg.toString(),10,100); }} }}

public class OlaApplet extends JApplet{public class OlaApplet extends JApplet{ StringBuffer msg ;StringBuffer msg ; public void init(){public void init(){ msg = new StringBuffer();msg = new StringBuffer(); msg.append("Iniciando o Applet . . .");msg.append("Iniciando o Applet . . ."); }} public void start(){public void start(){ msg.append("Começando o Applet . . .");msg.append("Começando o Applet . . ."); }} public void stop(){public void stop(){ msg.append("Parando o Applet . . .");msg.append("Parando o Applet . . ."); }} public void destroy(){public void destroy(){ msg.append("Destruindo o Applet . . .");msg.append("Destruindo o Applet . . ."); }} public void paint(Graphics g){public void paint(Graphics g){ g.drawString(msg.toString(),10,100);g.drawString(msg.toString(),10,100); }} }}

Page 16: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

16

Passagem de parâmetros

Programa OlaAppletPrograma OlaApplet

public class OlaApplet extends JApplet{ public class OlaApplet extends JApplet{ public void init(){public void init(){ msg = new StringBuffer();msg = new StringBuffer(); msg.append("Iniciando o Applet . . .");msg.append("Iniciando o Applet . . .");

String parametro1 = getParameter("texto");String parametro1 = getParameter("texto"); msg.append(" " + parametro1); msg.append(" " + parametro1); }}}}

public class OlaApplet extends JApplet{ public class OlaApplet extends JApplet{ public void init(){public void init(){ msg = new StringBuffer();msg = new StringBuffer(); msg.append("Iniciando o Applet . . .");msg.append("Iniciando o Applet . . .");

String parametro1 = getParameter("texto");String parametro1 = getParameter("texto"); msg.append(" " + parametro1); msg.append(" " + parametro1); }}}}

Página HTMLPágina HTML

<html><html> <body> <body> <APPLET code="OlaApplet.class" width=350 height=200> <APPLET code="OlaApplet.class" width=350 height=200>

<param name = "texto" value="isto é um parametro"><param name = "texto" value="isto é um parametro"> </APPLET></APPLET></body></body></html></html>

<html><html> <body> <body> <APPLET code="OlaApplet.class" width=350 height=200> <APPLET code="OlaApplet.class" width=350 height=200>

<param name = "texto" value="isto é um parametro"><param name = "texto" value="isto é um parametro"> </APPLET></APPLET></body></body></html></html>

Page 17: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

17

Restrições dos applets (sandbox) Não pode carregar bibliotecas externas Não pode ler ou escrever arquivos na máquina cliente Não pode fazer ligações de rede a não ser para a

máquina de onde veio Não pode iniciar a execução de nenhum programa na

máquina do cliente Não tem acesso à maior parte das propriedades do

sistema Janelas abertas têm aviso de segurança Várias restrições podem ser flexibilizadas se o applet for

assinado

Page 18: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

18

Vantagens / desvantagens dos applets

Desvantagens Restrições de segurança Tempo de download Incompatibilidade com browsers

Vantagens Facilidade de realizar comunicação em rede Possibilidade de abrir janelas externas Capacidade de estender o browser em recursos de

segurança, protocolos de rede, capacidade gráfica Aplicação sempre atualizada Capacidade de interagir com a página via JavaScript

Page 19: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

19

Componentes

objectos

Page 20: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

20

http://java.sun.com/docs/books/tutorial/uiswing/components/components.html

Page 21: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

21

Componentes

Bottons ComboBox List Slidder TextField Label ProgressBar

Page 22: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

22

Container pane = this.getContentPane();Container pane = this.getContentPane();

pane.add( new Button("ola"));pane.add( new Button("ola"));

Adicionar Componentes

Page 23: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

23

Contentores Panel ScrollPane SplitPane TabbedPane ToolBar InternalFrame

Page 24: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

24

layouts

Modos de visualização

Page 25: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

25

Layouts

Filosofia da linguagem JAVA programas portáveis interface adaptável.

Localização dos Componentes não é indicada por um par ordenado (x,y)

C++ builder Gestor de Apresentação

LayoutManager. Adapatação automática dos componentes

Pouco flexiveis para o programador Vários layoutManager Possibilidade de escrever novos layoutManager

Page 26: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

26

FlowLayout

Coloca os componentes em fila da esquerda superior do contentor para a direita.

Respeita o tamanho preferido dos componentes

É o padrão do JPanel.

JPanel c =new JPanel();JPanel c =new JPanel();c.add(new JButton("1"));c.add(new JButton("1"));c.add(new JTextField(9));c.add(new JTextField(9));c.add(new JButton("dois"));c.add(new JButton("dois"));c.add(new JButton("três"));c.add(new JButton("três"));

JPanel c =new JPanel();JPanel c =new JPanel();c.add(new JButton("1"));c.add(new JButton("1"));c.add(new JTextField(9));c.add(new JTextField(9));c.add(new JButton("dois"));c.add(new JButton("dois"));c.add(new JButton("três"));c.add(new JButton("três"));

Page 27: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

27

GridLayout

Divide o contentor em linhas e colunas.

Permite definir uma matriz de células onde são colocados os componentes.

Coloca os componentes da esquerda para a direita, de cima para baixo.

Todos os componentes terão o mesmo tamanho.

Não respeita o tamanho original dos componentes

JPanel c =new JPanel();JPanel c =new JPanel();c .setLayout(new GridLayout(2,2));c .setLayout(new GridLayout(2,2));c.add(new JButton(”um"));c.add(new JButton(”um"));c.add(new JTextField(5));c.add(new JTextField(5));c.add(new JButton("dois"));c.add(new JButton("dois"));c.add(new JButton("três"));c.add(new JButton("três"));

JPanel c =new JPanel();JPanel c =new JPanel();c .setLayout(new GridLayout(2,2));c .setLayout(new GridLayout(2,2));c.add(new JButton(”um"));c.add(new JButton(”um"));c.add(new JTextField(5));c.add(new JTextField(5));c.add(new JButton("dois"));c.add(new JButton("dois"));c.add(new JButton("três"));c.add(new JButton("três"));

Page 28: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

28

BorderLayout

Divide um contentor em cinco regiões:

BorderLayout.CENTER BorderLayout.NORTH BorderLayout.EAST BorderLayout.SOUTH BorderLayout.WEST

Quando se adiciona um componente, é necessário especificar em qual das áreas ele deve ser adicionado.

Ex.: add(butOK, BorderLayout.WEST);

O Componente ocupa todo o espaço!

Cada região contém apenas um componente

JPanel c =new JPanel(new JPanel c =new JPanel(new BorderLayout());BorderLayout());JButton b1=new JButton("1");JButton b1=new JButton("1");c.add(b1,BorderLayout.NORTH);c.add(b1,BorderLayout.NORTH);JButton b2=new JButton("2");JButton b2=new JButton("2");c.add(b2,BorderLayout.EAST);c.add(b2,BorderLayout.EAST);JButton b3=new JButton("3");JButton b3=new JButton("3");c.add(b3,BorderLayout.SOUTH);c.add(b3,BorderLayout.SOUTH);JButton b4=new JButton("4");JButton b4=new JButton("4");c.add(b4,BorderLayout.WEST);c.add(b4,BorderLayout.WEST);JButton b5=new JButton("5");JButton b5=new JButton("5");c.add(b5,BorderLayout.CENTER);c.add(b5,BorderLayout.CENTER);

JPanel c =new JPanel(new JPanel c =new JPanel(new BorderLayout());BorderLayout());JButton b1=new JButton("1");JButton b1=new JButton("1");c.add(b1,BorderLayout.NORTH);c.add(b1,BorderLayout.NORTH);JButton b2=new JButton("2");JButton b2=new JButton("2");c.add(b2,BorderLayout.EAST);c.add(b2,BorderLayout.EAST);JButton b3=new JButton("3");JButton b3=new JButton("3");c.add(b3,BorderLayout.SOUTH);c.add(b3,BorderLayout.SOUTH);JButton b4=new JButton("4");JButton b4=new JButton("4");c.add(b4,BorderLayout.WEST);c.add(b4,BorderLayout.WEST);JButton b5=new JButton("5");JButton b5=new JButton("5");c.add(b5,BorderLayout.CENTER);c.add(b5,BorderLayout.CENTER);

Page 29: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

29

BoxLayout

Respeita o tamanho preferido dos componentes

Coloca os componentes numa linha ou coluna.

BoxLayout.X_AXIS para componentes em linha

BoxLayout.Y_AXIS para componentes em coluna

JPanel c =new JPanel();JPanel c =new JPanel();c .setLayout(new c .setLayout(new BoxLayout(c,BoxLayout.Y_AXIS));BoxLayout(c,BoxLayout.Y_AXIS));c.add(new JButton(”um"));c.add(new JButton(”um"));c.add(new JButton(“dois”));c.add(new JButton(“dois”));c.add(new JButton(”três"));c.add(new JButton(”três"));c.add(new JButton(”quatro"));c.add(new JButton(”quatro"));

JPanel c =new JPanel();JPanel c =new JPanel();c .setLayout(new c .setLayout(new BoxLayout(c,BoxLayout.Y_AXIS));BoxLayout(c,BoxLayout.Y_AXIS));c.add(new JButton(”um"));c.add(new JButton(”um"));c.add(new JButton(“dois”));c.add(new JButton(“dois”));c.add(new JButton(”três"));c.add(new JButton(”três"));c.add(new JButton(”quatro"));c.add(new JButton(”quatro"));

Page 30: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

30

CardLayout Comporta-se como

uma pilha, Só o objecto que

estiver no topo é visível.

Métodos: first(Container) last(Container) next(Container) previous(Container) show(Container, String)

Page 31: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

31

NULL Layout

Layout null Utilizado para “desligar” o gestor de

layout pane.setLayout (null);

A partir desta instrução é necessário a definição da posição e o do tamanho de cada componente

componente.setBounds (x, y, larg, alt);

Page 32: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

32

Layouts Compostos

Container caixa = janela.getContentPane();Container caixa = janela.getContentPane();JPanel painel1 =new JPanel();JPanel painel1 =new JPanel();JPanel painel2 =new JPanel();JPanel painel2 =new JPanel();caixa.setLayout(new GridLayout(2,1));caixa.setLayout(new GridLayout(2,1));painel1.setLayout(new GridLayout(2,2));painel1.setLayout(new GridLayout(2,2));painel2.setLayout(new painel2.setLayout(new FlowLayout(FlowLayout.CENTER));FlowLayout(FlowLayout.CENTER));

Container caixa = janela.getContentPane();Container caixa = janela.getContentPane();JPanel painel1 =new JPanel();JPanel painel1 =new JPanel();JPanel painel2 =new JPanel();JPanel painel2 =new JPanel();caixa.setLayout(new GridLayout(2,1));caixa.setLayout(new GridLayout(2,1));painel1.setLayout(new GridLayout(2,2));painel1.setLayout(new GridLayout(2,2));painel2.setLayout(new painel2.setLayout(new FlowLayout(FlowLayout.CENTER));FlowLayout(FlowLayout.CENTER));

Page 33: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

33

Eventos

Janelas em acção

Page 34: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

34

Eventos

Realizam o trabalho útil numa aplicação Desencadeiam a execução de métodos

Dependem do evento Dependem do componente

São geridos por objectos de eventos java.util.EventObject Listeners

Page 35: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

35

Eventos Fontes, Eventos, Ouvintes

Page 36: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

36

java.util.EventObject

Todo o evento tem um objeto que é sua fonte Object fonte = evento.getSource();

Métodos de ouvintes (listeners) que desejam tratar eventos, recebem eventos como argumento

public void eventoOcorreu(EventObject evento) { Object fonte = evento.getSource(); . . . }

Ouvintes precisam ser registrados nas fontes Quando ocorre um evento, um método de todos os ouvintes

registrados é chamado e evento é passado como argumento

button.addActionListener(ouvinte1);

Page 37: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

37

Tipos de Eventos java.awt.event

ActionEvent (fonte: componentes de ação) MouseEvent (fonte: componentes afectados pelo rato) ItemEvent (fonte: checkboxes e similares) AdjustmentEvent (fonte: scrollbars) TextEvent (fonte: componentes de texto) WindowEvent (fonte: janelas) FocusEvent (fonte: componentes em geral) KeyEvent (fonte: componentes afectados pelo teclado) ...

Page 38: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

38

Interface de Eventos

Page 39: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

39

Adapters Alguns listeners possuem uma classe Adapter que

implementa todos os métodos, sem instruções Implementação vazia: {} Só existe para listeners que têm mais de um método

São úteis quando um Ouvinte precisa implementar apenas um dos vários métodos de um Listener

Pode sobrepor a implementação desejada do método do Adapter e não precisa se preocupar com os outros

Não são úteis em ouvintes que já estendem outras classes ou quando implementam diferentes listeners

Eliminação de métodos O nome do adapter é semelhante ao do Listener

MouseListener: MouseAdapter WindowListener: WindowAdapter

Page 40: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

40

Eventos Exemplo:

JButton button = new JButton("Fonte");ActionListener ouvinte1 = new OuvinteDoBotao();MouseListener ouvinte2 = new OuvinteDeCliques();button.addActionListener(ouvinte1);button.addMouseListener(ouvinte2);

O mesmo objeto que é fonte às vezes também é listener, se implementar as interfaces É necessário registrar a fonte ao listener

o objeto não adivinha que ele mesmo tem que capturar seus eventos

this.addWindowListener(this);

Page 41: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

41

Exemplopublic class NewJFrame extends javax.swing.JFrame {public class NewJFrame extends javax.swing.JFrame { public NewJFrame() {public NewJFrame() { botao = new javax.swing.JButton();botao = new javax.swing.JButton();

botao.setText("click");botao.setText("click");

botao.addActionListener(botao.addActionListener(

new java.awt.event.ActionListener() {new java.awt.event.ActionListener() {

public void public void actionPerformed(java.awt.event.ActionEvent evt) {actionPerformed(java.awt.event.ActionEvent evt) {

botaoActionPerformed(evt); }botaoActionPerformed(evt); }

});});

private void botaoActionPerformed(ActionEvent evt) {private void botaoActionPerformed(ActionEvent evt) {

JOptionPane.showMessageDialog(this,"Respondi " + JOptionPane.showMessageDialog(this,"Respondi " + evt.getSource());evt.getSource());

}}}}

public class NewJFrame extends javax.swing.JFrame {public class NewJFrame extends javax.swing.JFrame { public NewJFrame() {public NewJFrame() { botao = new javax.swing.JButton();botao = new javax.swing.JButton();

botao.setText("click");botao.setText("click");

botao.addActionListener(botao.addActionListener(

new java.awt.event.ActionListener() {new java.awt.event.ActionListener() {

public void public void actionPerformed(java.awt.event.ActionEvent evt) {actionPerformed(java.awt.event.ActionEvent evt) {

botaoActionPerformed(evt); }botaoActionPerformed(evt); }

});});

private void botaoActionPerformed(ActionEvent evt) {private void botaoActionPerformed(ActionEvent evt) {

JOptionPane.showMessageDialog(this,"Respondi " + JOptionPane.showMessageDialog(this,"Respondi " + evt.getSource());evt.getSource());

}}}}

Page 42: 1 Programação Visual em Java. 2 Sumário Introdução Contentores Componentes Layouts Eventos Exemplos

42

Fim