Escolar Documentos
Profissional Documentos
Cultura Documentos
javax.swing.AbstractButton
javax.swing.JButton javax.swing.ToggleButton
javax.swing.JCheckButton javax.swing.JRadioButton
Todos os tipos de botão são subclasses de AbstractButton, que define muitos dos
recursos que são comuns aos botões do swing.
Os botões são criados com a classe JButton, que é subclasse da classe
AbstractButton. O texto na superfície de um botão chama-se rótulo de botão.
O exemplo a seguir cria dois botões e demonstra que JButtons (como JLabels)
suportam a exibição de ícones.
Para fornecer ao utilizador um nível extra de interactividade visual com a GUI, o
JButton também pode ter um Icon rollover – um Icon que é exibido quando o mouse é
posicionado sobre o botão. O ícone no botão muda quando o mouse se move para
dentro e para fora da área do botão na tela.
2
import javax.swing.*;
public class TestarBotoes1 extends JFrame
{ private JButton btnSimples, btnComIcone;
private Container cont;
public TestarBotoes1()
{ super("Testando Botoes");
cont = getContentPane();
cont.setLayout(new FlowLayout());
// cria botoes
btnSimples = new JButton("Botao Simples");
cont.add(btnSimples);
Icon bug1 = new ImageIcon("bug1.gif");
Icon bug2 = new ImageIcon("bug2.gif");
btnComIcone = new JButton("Botao com Icone", bug1);
btnComIcone.setRolloverIcon(bug2);
cont.add(btnComIcone);
setSize(375,100);
setVisible(true);
}
}
Componentes Campo do Texto e Campo de Senha
JTextField e JPasswordField são utilizados para criar áreas de uma única linha
em que o texto pode ser inserido pelo utilizador através do teclado ou o texto pode ser
simplesmente exibido. O Campo de Senha mostra que um caracter foi digitado quando
o utilizador insere os caracteres, mas oculta os caracteres assumindo que eles
representam uma senha.
import java.awt.*;
import javax.swing.*;
public class TextFieldTest extends JFrame
{ private JTextField campoTexto1, campoTexto2, campoTexto3;
private JPasswordField campoSenha;
private Container cont;
public TextFieldTest()
{ super("Testando JTextField e JPasswordField");
cont = getContentPane();
cont.setLayout(new FlowLayout());
// constrói campo do texto
campoTexto1 = new JTextField(10); //define a largura do campo
cont.add(campoTexto1);
4
// constrói campo do texto com dimensoes default
campoTexto2= new JTextField("Enter text here");
cont.add(campoTexto2);
setSize(400,150);
setVisible(true);
}
OK
Origem do Evento
Notificação do Listener
Evento
Handler
7
Como isso acontece?
– Primeiro
• O listener tem que se registrar no objecto origem do evento, informando que
tipo de evento ele está interessado em receber.
– Quando um evento ocorre
• O listener é notificado que o evento ocorreu.
• O objecto origem notifica o listener através da execução de um método
específico, o qual recebe como parâmetro o objecto evento.
– Quando o listener recebe a notificação
• Executa o método handler apropriado
Tratamento de Eventos
Cada tipo de evento possui métodos específicos para o seu tratamento. Para
saber que métodos são esses e como a classe listener deve implementá-los
utilizamos o conceito de interface.
Um listener deve implementar uma interface que define os métodos que serão
chamados quando os eventos ocorrerem.
8
Ex.:
• O evento que ocorre quando um botão é clicado é o evento (objecto)
ActionEvent.
• Todos os listeners que estão registrados para um botão e esperam receber
a notificação de um clique do botão devem implementar o método
actionPerformed(), que será chamado pelo botão quando for clicado.
• Este método está definido na interface ActionListener, logo o listener
deverá implementar esta interface.
Formas de implementação:
import javax.swing.*;
import java.awt.event.*;
public class TestEvent2 extends Jframe
{ private JButton botao;
private JLabel texto;
private int cont;
. . .
botao = new JButton("Igual");
import javax.swing.*;
import java.awt.event.*;
public class TestEvent3 extends JFrame
{ private JButton botao;
private JLabel texto;
private int cont;
. . .
botao = new JButton("Igual");
botao.addActionListener(
new ActionListener()
{ public void actionPerformed(ActionEvent x)
{ cont++;
texto.setText("Total de cliques: "+cont);
} 12
} );
Existe uma variedade de interfaces listener (java.awt.event.* e
javax.swing.event.*), alguns deles são:
13
Referência bibliográfica:
António José Mendes; Maria José Marcelino.
“Fundamentos de programação em Java 2”. FCA. 2002.
Elliot Koffman; Ursula Wolz.
“Problem Solving with Java”. 1999.
F. Mário Martins;
“Programação Orientada aos objectos em Java 2”, FCA, 2000,
John Lewis, William Loftus;
“Java Software Solutions: foundation of program design”, 2nd edition, Addision-Wesley
John R. Hubbard.
“Theory and problems of programming with Java”. Schaum’s Outline series. McGraw-Hill.
H. Deitel; P. Deitel.
“Java, como programar”. 4 edição. 2003. Bookman.
Rui Rossi dos Santos.
“Programando em Java 2– Teoria e aplicações”. Axcel Books. 2004
14