Introdução ao JToggleButton

JToggleButton é simplesmente um botão de dois estados selecionado e desmarcado. É um componente Swing. Você deve ter ouvido falar sobre a caixa de seleção e o botão de opção. É exatamente a mesma coisa. De fato, JRadioButton e JCheckBox são subclasses da classe JToggleButton. O uso de JToggleButton é, para registrar a escolha do usuário entre duas opções.

Por exemplo, podemos ter vários JToggleButtons especificando o nome do idioma em cada botão e o usuário irá selecionar / desmarcar (desmarcar o padrão) cada botão para especificar que ele sabe / não conhece o idioma respectivo. JToggleButton está no estado desmarcado por padrão.

Declaração de JToggleButton

public class JToggleButton
extends AbstractButton
implements Accessible

Onde,

  • AbstractButton define funcionalidades comuns de Buttons e MenuItems.
  • Acessível é a interface principal do pacote de acessibilidade. Ele contém um método "getAccessibleContext" que retorna o AccessibleContext associado a este botão.

Construtores de JToggleButton

Abaixo estão os diferentes construtores do JToggleButton:

  • JToggleButton (): esse construtor cria um botão de alternância não selecionado sem texto ou imagem.
  • JToggleButton (Ação a): Este construtor cria um botão de alternância com propriedades da ação fornecida.
  • JToggleButton (texto da string): esse construtor cria um botão de alternância não selecionado com o texto especificado e sem imagem.
  • JToggleButton (ícone): este construtor cria um botão de alternância não selecionado sem texto e imagem especificada.
  • JToggleButton (Texto da string, ícone Ícone): esse construtor cria um botão de alternância não selecionado com o texto especificado e a imagem especificada.
  • JToggleButton (Texto da cadeia, booleano selecionado): Este construtor cria um botão de alternância sem imagem, texto especificado e o estado de seleção especificado.
  • JToggleButton (ícone, booleano selecionado): esse construtor cria um botão de alternância sem texto, imagem especificada e estado de seleção especificado.
  • JToggleButton (Texto da string, ícone Ícone, booleano selecionado): Este é o construtor no qual todas as três propriedades podem ser fornecidas - estado da seleção, texto e imagem.

Métodos de JToggleButton

Abaixo estão os diferentes métodos usados ​​no JToggleButton:

  • public void setText (String string): este método define o texto que aparece no botão.
  • public void setSelected (booleano b): este método define o estado do botão. Se b for verdadeiro, o botão aparecerá selecionado e se b for falso, o botão aparecerá desmarcado.
  • public void setEnabled (booleano b): este método é usado para desativar o botão. Se b for falso, o botão ficará acinzentado e não será mais clicável.
  • public void setIcon (Icon defaultIcon): este método define o ícone desse botão. Este ícone será usado como um ícone "pressionado" e "desativado" se nenhum ícone "pressionado" estiver definido explicitamente.
  • public void setPressedIcon (Ícone ícone pressionado): Este método define o ícone "pressionado" para este botão. Este ícone será mostrado no momento em que o usuário pressionar o botão.
  • public AccessibleContext getAccessibleContext (): este método retorna o contexto acessível associado a este botão.
  • string protegida paramString (): Este método retorna a representação de string deste botão. Este método é para fins de depuração. O valor de retorno pode estar vazio, mas não nulo.
  • public String getUIClassID (): Este método retorna o nome da classe look and feel (l & f) desse botão.
  • public void updateUI (): redefine a aparência deste botão.
  • public void addActionListener (ActionListener l): este método anexou um ouvinte de ação a este botão para que qualquer ação executada nesse botão possa ser capturada no back-end.
  • public void addItemListener (ItemListener l): esse método anexa um ouvinte de item a este botão, para que a seleção e a desmarcação desse botão possam ser tratadas no back-end.

Programa para implementar o JToggleButton

import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.ImageIcon;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JToggleButton;
import javax.swing.SwingConstants;
public class JToggleButtonDemo (
public static void main(String() args) (
JFrame app = new JFrame();
JToggleButton englishLanguage = new JToggleButton("English", true);
JToggleButton hindiLanguage = new JToggleButton();
JToggleButton marathiLanguage = new JToggleButton();
JToggleButton tamilLanguage = new JToggleButton();
app.setSize(400, 400);
app.setLayout(new GridLayout(6, 1));
app.setVisible(true);
englishLanguage.setText("English");
englishLanguage.setBackground(new Color(255, 66, 0));
hindiLanguage.setText("Hindi");
hindiLanguage.setBackground(new Color(255, 66, 0));
marathiLanguage.setText("Marathi");
marathiLanguage.setBackground(new Color(255, 66, 0));
tamilLanguage.setText("Tamil");
tamilLanguage.setBackground(new Color(255, 66, 0));
app.add(englishLanguage);
app.add(hindiLanguage);
app.add(marathiLanguage);
app.add(tamilLanguage);
JLabel action = new JLabel();
app.add(action);
JLabel status = new JLabel("User knows : English");
app.add(status);
ItemListener listener = new ItemListener() (
@Override
public void itemStateChanged(ItemEvent e) (
StringBuilder statusString = new StringBuilder("User knows :");
if (englishLanguage.isSelected()) (
statusString.append(" English");
)
if (hindiLanguage.isSelected()) (
statusString.append(" Hindi");
)
if (marathiLanguage.isSelected()) (
statusString.append(" Marathi");
)
if (tamilLanguage.isSelected()) (
statusString.append(" Tamil");
)
if (englishLanguage.isSelected() == false && hindiLanguage.isSelected() == false
&& marathiLanguage.isSelected() == false && tamilLanguage.isSelected() == false) (
status.setText("User doesn't know any language !!");
) else (
status.setText(statusString.toString());
)
)
);
ActionListener actionListener = new ActionListener() (
@Override
public void actionPerformed(ActionEvent e) (
JToggleButton temp = (JToggleButton) e.getSource();
if (temp.isSelected()) (
action.setText("Current action : " + temp.getActionCommand() + " is selected");
) else (
action.setText("Current action : " + temp.getActionCommand() + " is de-selected");
)
)
);
englishLanguage.addItemListener(listener);
englishLanguage.addActionListener(actionListener);
hindiLanguage.addItemListener(listener);
hindiLanguage.addActionListener(actionListener);
marathiLanguage.addItemListener(listener);
marathiLanguage.addActionListener(actionListener);
tamilLanguage.addItemListener(listener);
tamilLanguage.addActionListener(actionListener);
)
)

Explicação

  • Este programa é muito simples e auto-explicativo. Ele coleta as informações do usuário sobre quais idiomas ele conhece.
  • Primeiro, criamos um quadro de tamanho 400 por 400 pixels e com uma coluna e cinco linhas.
  • Criou quatro botões de alternância para quatro idiomas diferentes - inglês, hindi, marata e tâmil e adicionados ao quadro do contêiner.
  • Definimos a cor de plano de fundo desses botões como vermelha (até desmarcada).
  • Em seguida, adicionou um rótulo na quinta linha do quadro para mostrar o status do aplicativo.
  • Inicialmente, um botão para o idioma inglês é selecionado usando o construtor JToggleButton, o que significa que o usuário conhece o idioma inglês por padrão e todos os outros botões estão desmarcados.
  • Para especificar o idioma conhecido, o usuário terá que clicar (selecionar) no botão específico. Os usuários podem clicar novamente no botão selecionado para desmarcá-lo.
  • Quando um botão é selecionado ou desmarcado, um evento é acionado e armazenado em cache em um ItemListener e o status é alterado de acordo.
  • Além disso, para verificar a ação atual, um ActionListener é criado e anexado a cada botão para que, quando um idioma for selecionado ou desmarcado, a ação executada seja mostrada ao usuário.
  • Utilizado pode selecionar ou desmarcar um ou mais idiomas e ver o status de acordo.

Resultado:

1. Esta é a nossa aplicação na qual o idioma inglês é selecionado por padrão.

2. O usuário selecionou o idioma “Marathi” e o status e a ação são alterados de acordo.

3. O usuário desmarcou o idioma “inglês” e o status e a ação são alterados de acordo.

4. O usuário desmarcou o idioma “Marathi” e o status é alterado de acordo.

Conclusão

O JToggleButton é um componente importante no Swing, o que facilita a especificação de uma escolha entre duas opções ou respostas, como sim ou não, conforme ilustrado no exemplo. Também podemos usar caixas de seleção ou botões de opção que são subclasses de JToggleButton.

Artigos recomendados

Este é um guia para o JToggleButton. Aqui discutimos os construtores e métodos do JToggleButton junto com seu programa. Você também pode consultar os seguintes artigos para saber mais -

  1. JPanel em Java
  2. JButton em Java
  3. JOptionPane em Java
  4. JScrollPane em Java
  5. JFrame em Java
  6. JLabel em Java
  7. Como criar um RadioButton?