Los JToggleButton son botones especiales que nos sirven para dar al usuario el efecto visual del famoso botón de "Encendido / Apagado". Para esto debemos crear un listener pero del tipo "Item" (ItemListener), y le asignamos el método stateChanged(). Entonces, para no alargarnos y enredarnos la vida vamos a explicar paso a paso:
Lo primero es crear el botón con el texto:
Lo primero es crear el botón con el texto:
JToggleButton boton = new JToggleButton("EL TEXTO DEL BOTON");Ahora debemos agregar el "Layout" para mostrar correctamente nuestro contenido, en este caso utilizare un Grid:
setLayout(new GridLayout());Para determinar si el botón esta activo entonces usamos una condición simple con el método "isSelected()":
public void itemStateChanged(ItemEvent evt) { if (boton.isSelected()) { //ALGO SI ESTA ACTIVO } else { //ALGO SI NO LO ESTA } }Y eso es todo, si se quieren crear varios botones para que el usuario seleccione alguno lo podemos combinar con los ButtonGroup, aquí un ejemplo funcional:
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class JToggle extends JFrame { ButtonGroup grupo = new ButtonGroup(); JToggleButton boton = new JToggleButton("PRESIONAME"); JToggleButton opcionA = new JToggleButton("Opción A"); JToggleButton opcionB = new JToggleButton("Opción B"); JToggleButton opcionC = new JToggleButton("Opción C"); JLabel etiqueta = new JLabel(" PULSA EL BOTON PARA COMENZAR "); public JToggle() { super("El JToggleButton"); setLocation(100,100); setSize(700,130); setLayout(new GridLayout()); add(boton); add(etiqueta); grupo.add(opcionA); grupo.add(opcionB); grupo.add(opcionC); add(opcionA); add(opcionB); add(opcionC); boton.addItemListener(new ElListener()); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } class ElListener implements ItemListener { public void itemStateChanged(ItemEvent evt) { if (boton.isSelected()) { boton.setBackground(Color.green); etiqueta.setForeground(Color.blue); etiqueta.setText("El botón esta activado"); } else { boton.setBackground(Color.red); etiqueta.setForeground(Color.black); etiqueta.setText("El botón no esta activo"); } } } public static void main(String[] arg) { JOptionPane.showMessageDialog(null,"Un JToggleButton....\n"); JOptionPane.showMessageDialog(null,"By Carlitox ("+ "http://calitoxenlaweb.blogspot.com)"); JToggle app = new JToggle(); app.setVisible(true); } }
Recibe notificaciones por correo