Los JToggleButton

   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:
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);
 }
}


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