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
Lamentablemente hay muchos usuarios en la red que han llegado al blog para escribir obscenidades, así que la moderación se hace necesaria. Recuerda utilizar un lenguaje correcto y espera a que sea aprobado.
Si necesitas publicar código haz click en "Conversión" para hacerlo legible.
ConversiónConversión