Introducción a JToggleButton

JToggleButton es simplemente un botón de dos estados seleccionado y deseleccionado. Es un componente Swing. Debe haber escuchado sobre la casilla de verificación y el botón de opción. Es exactamente lo mismo. De hecho, JRadioButton y JCheckBox son subclases de la clase JToggleButton. El uso de JToggleButton es, para registrar la elección del usuario entre dos opciones.

Por ejemplo, podemos tener múltiples JToggleButtons que especifiquen el nombre del idioma en cada botón y el usuario seleccionará / deseleccionará (por defecto) cada botón para especificar que él / ella sabe / no sabe el idioma respectivo. JToggleButton está en el estado no seleccionado de forma predeterminada.

Declaración de JToggleButton

public class JToggleButton
extends AbstractButton
implements Accessible

Dónde,

  • AbstractButton define funcionalidades comunes de botones y elementos de menú.
  • Accesible es la interfaz principal para el paquete de accesibilidad. Contiene un método "getAccessibleContext" que devuelve el AccessibleContext asociado con este botón.

Constructores de JToggleButton

A continuación se muestran los diferentes constructores de JToggleButton:

  • JToggleButton (): este constructor crea un botón de alternancia no seleccionado sin texto o imagen.
  • JToggleButton (Acción a): este constructor crea un botón de alternancia que tiene propiedades de la acción suministrada.
  • JToggleButton (texto de cadena): este constructor crea un botón de alternancia no seleccionado con el texto especificado y sin imagen.
  • JToggleButton (icono de icono): este constructor crea un botón de alternancia no seleccionado sin texto e imagen especificada.
  • JToggleButton (texto de cadena, icono de icono): este constructor crea un botón de alternancia no seleccionado con el texto especificado y la imagen especificada.
  • JToggleButton (texto de cadena, booleano seleccionado): este constructor crea un botón de alternar sin imagen, texto especificado y el estado de selección especificado.
  • JToggleButton (icono de icono, booleano seleccionado): este constructor crea un botón de alternar sin texto, imagen especificada y estado de selección especificado.
  • JToggleButton (texto de cadena, icono de icono, booleano seleccionado): este es el constructor donde se pueden proporcionar las tres propiedades: estado de selección, texto e imagen.

Métodos de JToggleButton

A continuación se muestran los diferentes métodos utilizados en JToggleButton:

  • public void setText (texto de cadena): este método establece el texto que aparece en el botón.
  • public void setSelected (boolean b): este método establece el estado del botón. Si b es verdadero, el botón aparecerá seleccionado y si b es falso, el botón aparecerá desactivado.
  • public void setEnabled (boolean b): este método se utiliza para deshabilitar el botón. Si b es falso, el botón estará atenuado y ya no se podrá hacer clic en él.
  • public void setIcon (Icon defaultIcon): este método establece el icono para este botón. Este icono se usará como un icono "presionado" e "deshabilitado" si no se establece explícitamente ningún icono "presionado".
  • public void setPressedIcon (Icon pressIcon): este método establece el icono "presionado" para este botón. Este icono se mostrará en el momento en que el usuario presione el botón.
  • public AccessibleContext getAccessibleContext (): este método devuelve el contexto accesible asociado con este botón.
  • protegido String paramString (): este método devuelve la representación de cadena de este botón. Este método es para fines de depuración. El valor de retorno puede estar vacío pero no nulo.
  • public String getUIClassID (): este método devuelve el nombre de la clase look and feel (l & f) de este botón.
  • public void updateUI (): restablece el aspecto de este botón.
  • public void addActionListener (ActionListener l): este método adjunta un escucha de acción a este botón para que cualquier acción realizada en este botón pueda capturarse en el backend.
  • public void addItemListener (ItemListener l): este método adjunta un elemento de escucha a este botón para que la selección y la anulación de la selección de este botón puedan manejarse en el backend.

Programa para implementar 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);
)
)

Explicación

  • Este programa es muy simple y se explica por sí mismo. Recopila la información del usuario sobre los idiomas que conoce.
  • Primero, hemos creado un marco de tamaño 400 por 400 píxeles y que tiene una columna y cinco filas.
  • Creó cuatro botones de alternancia para cuatro idiomas diferentes: inglés, hindi, maratí y tamil y se agregó al marco del contenedor.
  • Hemos establecido el color de fondo de estos botones en rojo (hasta que se deseleccione).
  • Luego agregó una etiqueta en la quinta fila en el marco para mostrar el estado de la aplicación.
  • Inicialmente, se selecciona un botón para el idioma inglés utilizando el constructor de JToggleButton, lo que significa que el usuario conoce el idioma inglés de forma predeterminada y todos los demás botones están deseleccionados.
  • Para especificar el idioma conocido, el usuario tendrá que hacer clic en (seleccionar) el botón específico. Los usuarios pueden hacer clic nuevamente en el botón seleccionado para deseleccionarlo.
  • Cuando se selecciona o deselecciona un botón, se dispara un evento y se almacena en caché en un ItemListener y el estado cambia en consecuencia.
  • Además, para verificar la acción actual, se crea un ActionListener y se adjunta a cada botón para que cuando se selecciona o deselecciona un idioma, se muestre al usuario la acción realizada.
  • Usado puede seleccionar o deseleccionar uno o más idiomas y ver el estado en consecuencia.

Salida:

1. Esta es nuestra aplicación en la que se selecciona el idioma inglés de forma predeterminada.

2. El usuario ha seleccionado el idioma "marathi" y el estado y la acción se modifican en consecuencia.

3. El usuario ha deseleccionado el idioma "inglés" y el estado y la acción se cambian en consecuencia.

4. El usuario ha deseleccionado el idioma "marathi" y el estado cambia en consecuencia.

Conclusión

JToggleButton es un componente importante en Swing que hace que sea fácil especificar una elección entre dos opciones o respuestas como sí o no como se muestra en el ejemplo. También podemos usar casillas de verificación o botones de radio que son subclases de JToggleButton.

Artículos recomendados

Esta es una guía para JToggleButton. Aquí discutimos los constructores y métodos de JToggleButton junto con su programa. También puede consultar los siguientes artículos para obtener más información:

  1. JPanel en Java
  2. JButton en Java
  3. JOptionPane en Java
  4. JScrollPane en Java
  5. JFrame en Java
  6. JLabel en Java
  7. ¿Cómo crear un RadioButton?