criando botões

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

janela-botoes.gif

2 Responses to “criando botões”

  1. Priscila says:
    Muito obrigada !
    Esse post me ajudou demais,apesar se ser simples o : setActionCommand(),eu estava na dúvida em como utiliza-lo.

    O post é demais !

    vlw.

  2. gabriel says:
    cara gostei :D , mas me encina a fazer o botao “faz nada” a trazer uma imagem para dentro da janela ;D, agradecido desde já

Leave a Reply