14 de junho de 2006 Exerccio 1 Construa a tela Utilizando os objetos: tela :JFrame painel :JPanel botao :JButton 1 forma: Utilizando um objeto searado da classe da alica!"o ara a #anela $#%rame& import javax.swing.*; import java.awt.*; public class TesteAcao{ public static void main(String args[]{ !!"eclara#$o %os objetos gr&'icos JFrame tela ( new JFrame("Teste Ao"; JPanel painel ( new JPanel(; JButton botao ( new JButton("Ao"; !!)on'igura#$o %os objetos gr&'icos !!painel:JPanel painel.setLayout(new Flow*a+out(; painel.add(botao; !!tela:JFrame tela.set)ontentPane(painel; tela.set,i-e(./0120; tela.set3isible(true; } } 2 forma: Utilizando um objeto 'nico ara a alica!"o e ara a #anela $(este)cao um #%rame& import javax.swing.*; import java.awt.*; public class TesteAcao extends JFrame{ public static void main(String args[]{ !!"eclara#$o %os objetos gr&'icos TesteAcao t ( new TesteAcao(; JPanel painel ( new JPanel(; JButton botao ( new JButton("Ao"; !!)on'igura#$o %os objetos gr&'icos !!painel:JPanel painel.setLayout(new Flow*a+out(; painel.add(botao; !!tela:JFrame t.setTitle("Teste Ao"; t.set)ontentPane(painel; t.set,i-e(./0120; t.set3isible(true; } } Exerccio 2 Ativar um mtodo no momento em que o usurio clica no boto Criar um objeto ouvidor (*+istener,) $ao clicar no bot"o a mensa-em abai.o aarecer/& 1 forma: Utilizando um objeto searado da classe da alica!"o ara ser o ou0idor de e0entos da janela $)ction+istener& import javax.swing.*; import java.awt.*; import java.awt.event.*; public class TesteAcao extends JFrame4 public static void main(String args564 !!"eclara#$o %os objetos gr&'icos TesteAcao t ( new TesteAcao(; JPanel painel ( new JPanel(; JButton botao ( new JButton(7A#$o7; 8uvi%or ouvi%or ( new 8uvi%or(t; !!)on'igura#$o %os objetos gr&'icos !!botao:JButton botao.a%%Action*istener(ouvi%or; !!painel:JPanel painel.set*a+out(new Flow*a+out(; painel.a%%(botao; !!tela:JFrame t.setTitle(7Teste A#$o7; t.set)ontentPane(painel; t.set,i-e(./0120; t.set3isible(true; 9 9 import javax.swing.*; import java.awt.event.*; public class 8uvi%or implements Action*istener4 JFrame 'rame; public 8uvi%or(JFrame 'rame4 tis.'rame ( 'rame; 9 public void actionPer'orme%(Action:vent e4 J8ptionPane.s;ow<essage"ialog('rame17<ensagem717A#$o71 J8ptionPane.=>F8?<AT=8>@<:,,AA:; 9 9 2 forma: Utilizando o r1rio objeto da classe da alica!"o ara ser o ou0idor de e0entos da janela $)ction+istener& import javax.swing.*; import java.awt.*; import java.awt.event.*; public class TesteAcao extends JFrame implements Action*istener4 public static void main(String args564 !!"eclara#$o %os objetos gr&'icos TesteAcao t ( new TesteAcao(; JPanel painel ( new JPanel(; JButton botao ( new JButton(7A#$o7; !!)on'igura#$o %os objetos gr&'icos !!botao:JButton botao.a%%Action*istener(t; !!painel:JPanel painel.set*a+out(new Flow*a+out(; painel.a%%(botao; !!tela:JFrame t.setTitle(7Teste A#$o7; t.set)ontentPane(painel; t.set,i-e(./0120; t.set3isible(true; 9 public void actionPer'orme%(Action:vent e4 J8ptionPane.s;ow<essage"ialog(t;is17<ensagem717A#$o71 J8ptionPane.=>F8?<AT=8>@<:,,AA:; 9 9 Exerccio 3 Incluindo um novo boto na tela import javax.swing.*; import java.awt.*; import java.awt.event.*; public class TesteAcaoB extends JFrame implements Action*istener4 public static void main(String args564 !!"eclara#$o %os objetos gr&'icos TesteAcaoB t ( new TesteAcaoB(; JPanel painel ( new JPanel(; JButton b. ( new JButton(7A#$o .7; JButton bB ( new JButton(7A#$o B7; !!)on'igura#$o %os objetos gr&'icos !!b.:JButton b..a%%Action*istener(t; !!bB:JButton bB.a%%Action*istener(t; !!painel:JPanel painel.set*a+out(new Flow*a+out(; painel.a%%(b.; painel.a%%(bB; !!tela:JFrame t.setTitle(7Teste A#$o7; t.set)ontentPane(painel; t.set,i-e(./01.00; t.set3isible(true; 9 public void actionPer'orme%(Action:vent e4 J8ptionPane.s;ow<essage"ialog(t;is17<ensagem717A#$o71 J8ptionPane.=>F8?<AT=8>@<:,,AA:; 9 9 Exerccio 4 Identificando o boto pressionado atravs do seu teto
Cada boto pressionado leva consi!o a mensa!em escrita no boto import javax.swing.*; import java.awt.*; import java.awt.event.*; public class TesteAcaoC extends JFrame implements Action*istener4 public static void main(String args564 !!"eclara#$o %os objetos gr&'icos TesteAcaoC t ( new TesteAcaoC(; JPanel painel ( new JPanel(; JButton b. ( new JButton(7A#$o .7; JButton bB ( new JButton(7A#$o B7; !!)on'igura#$o %os objetos gr&'icos !!b.:JButton b..a%%Action*istener(t; !!bB:JButton bB.a%%Action*istener(t; !!painel:JPanel painel.set*a+out(new Flow*a+out(; painel.a%%(b.; painel.a%%(bB; !!tela:JFrame t.setTitle(7Teste A#$o7; t.set)ontentPane(painel; t.set,i-e(./01.00; t.set3isible(true; 9 public void actionPer'orme%(Action:vent e4 J8ptionPane.s;ow<essage"ialog(tis1 7<ensagem: (7De.getAction)omman%(D7717A#$o71 J8ptionPane.=>F8?<AT=8>@<:,,AA:; 9 9 Exerccio 5 Identificando o boto pressionado atravs da refer"ncia dos objetos de tela# $ste tipo de diferencia%o mais eficaz uma vez que mesmo que os bot&es ten'am o mesmo teto o soft(are conse!ue identificar qual deles foi acionado# )o eemplo* os nomes dos bot&es so diferentes* mas a diferencia%o ainda seria poss+vel mesmo que os nomes fossem i!uais# import javax.swing.*; import java.awt.*; import java.awt.event.*; public class TesteAcaoE extends JFrame implements Action*istener4 private JButton b.; private JButton bB; public static void main(String args564 !!"eclara#$o %os objetos gr&'icos TesteAcaoE t ( new TesteAcaoE(; JPanel painel ( new JPanel(; t.b. ( new JButton(7A#$o .7; t.bB ( new JButton(7A#$o B7; !!)on'igura#$o %os objetos gr&'icos !!b.:JButton t.b..a%%Action*istener(t; !!bB:JButton t.bB.a%%Action*istener(t; !!painel:JPanel painel.set*a+out(new Flow*a+out(; painel.a%%(t.b.; painel.a%%(t.bB; !!tela:JFrame t.setTitle(7Teste A#$o7; t.set)ontentPane(painel; t.set,i-e(./01.00; t.set3isible(true; 9 public void actionPer'orme%(Action:vent e4 i! (e.get,ource(((b.4 J8ptionPane.s;ow<essage"ialog(tis1 7Bot$o . pressiona%o717A#$o71 J8ptionPane.=>F8?<AT=8>@<:,,AA:; 9 else i! (e.get,ource(((bB4 J8ptionPane.s;ow<essage"ialog(t;is1 7Bot$o B pressiona%o717A#$o71 J8ptionPane.=>F8?<AT=8>@<:,,AA:; 9 9 9