Para adicionar componentes a janela usamos o método add, a classe JButton representa um botão na tela que pode ser clicado, o exemplo abaixo, cria 3 botões, e demonstra :
como habilitar ou desabilitar os botões
b3.setEnabled(false);
como criar teclas de atalho
b3.setMnemonic(KeyEvent.VK_E);
como criar textos de ajuda para cada botão (tooltip)
b2.setToolTipText(“não faz nada”);
Para o tratamento dos eventos do botãom, neste caso a própria classe recebe os eventos dos botões, isto é definido através da instrução addActionListener onde a janela atual (this) é indicado como tratador dos eventos do botão. Para que a classe atual pudesse tratar os eventos do botão é necessário que a mesma implemente a interface ActionListener veja na primeira linha :
public class Botoes extends JFrame implements ActionListener {
ou seja esta classe está informnando ao compilador que irá seguir as regras definidas na interface ActionListener que neste caso exige que a classe possua um método actionPerformed, como vemos no código
public void actionPerformed(ActionEvent e) {
Neste exemplo onde temos somente um método para tratar os eventos, definimos um identificador para cada botão, de forma que o botão seja identificado dentro do método actionPerformed, para tal usamos o método :
b3.setActionCommand(“enable”);
Veja o código abaixo :
Botoes.java |
01 package br.com.thz;
02
03 import java.awt.Container;
04 import java.awt.FlowLayout;
05 import java.awt.event.ActionEvent;
06 import java.awt.event.ActionListener;
07 import java.awt.event.KeyEvent;
08
09 import javax.swing.JButton;
10 import javax.swing.JFrame;
11
12 public class Botoes extends JFrame implements ActionListener {
13
14 JButton b1;
15
16 JButton b2;
17
18 JButton b3;
19
20 public Botoes() {
21
22 b1 = new JButton("Disable");
23 b1.setMnemonic(KeyEvent.VK_D);
24 b1.setActionCommand("disable");
25
26 b2 = new JButton("Middle button");
27 b2.setMnemonic(KeyEvent.VK_M);
28
29 b3 = new JButton("Enable");
30 b3.setMnemonic(KeyEvent.VK_E);
31 b3.setActionCommand("enable");
32 b3.setEnabled(false);
33
34 // determina que objeto irá receber os eventos dos botões
35 b1.addActionListener(this);
36 b3.addActionListener(this);
37
38 b1.setToolTipText("Click neste botão "
39 + "para disabilitar o botão do meio");
40 b2.setToolTipText("não faz nada");
41 b3.setToolTipText("Click neste botão para "
42 + "habilitar o botão do meio");
43
44 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
45 setLocationRelativeTo(null);
46 Container c = getContentPane();
47
48 c.setLayout(new FlowLayout());
49 c.add(b1);
50 c.add(b2);
51 c.add(b3);
52 pack();
53
54 }
55
56 // recebe os eventos dos botões
57 public void actionPerformed(ActionEvent e) {
58 if ("disable".equals(e.getActionCommand())) {
59 b2.setEnabled(false);
60 b1.setEnabled(false);
61 b3.setEnabled(true);
62 } else {
63 b2.setEnabled(true);
64 b1.setEnabled(true);
65 b3.setEnabled(false);
66 }
67 }
68
69 public static void main(String[] args) {
70 Botoes janela = new Botoes();
71 janela.show();
72 }
73 } |
Este é o resultado do código acima, observe as letras sublinhadas referentes as teclas de atalho chamadas pressionando Alt + a letra de cada botão
Esse post me ajudou demais,apesar se ser simples o : setActionCommand(),eu estava na dúvida em como utiliza-lo.
O post é demais !
vlw.