2011-09-23 28 views

Respuesta

41

También puede utilizar el método itemStateChanged del itemListener como sigue:

JToggleButton jtb = new JToggleButton("Press Me"); 
jtb.addItemListener(new ItemListener() { 
    public void itemStateChanged(ItemEvent ev) { 
     if(ev.getStateChange()==ItemEvent.SELECTED){ 
     System.out.println("button is selected"); 
     } else if(ev.getStateChange()==ItemEvent.DESELECTED){ 
     System.out.println("button is not selected"); 
     } 
    } 
}); 

y desea conocer el estado de jtb este último sobre el uso isSelected() método

System.out.println(jtb.isSelected()); 
if(jtb.isSelected()){ 
    System.out.println("button is selected"); 
} else { 
    System.out.println("button is not selected"); 
} 
+0

sí, una buena manera de implementar esto, 1+ :) –

+0

Gracias @Harry Joy. Es una muy buena elaboración ... :) – Dewsworld

+1

Desde Java8 puedes usar la expresión lambda but.addItemListener ((ItemEvent ev) -> {/ * tu código * /} –

14

Para responder a los clics, agregue un ActionListener al JToggleButton. Para encontrar su estado, al igual que un JRadioButton, llame al método isSelected().

Por ejemplo,

import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.JOptionPane; 
import javax.swing.JToggleButton; 

public class ToggleTest { 
    public static void main(String[] args) { 
     JToggleButton toggleBtn = new JToggleButton("Toggle Me!"); 
     toggleBtn.addActionListener(new ActionListener() { 

     public void actionPerformed(ActionEvent e) { 
      JToggleButton tBtn = (JToggleButton)e.getSource(); 
      if (tBtn.isSelected()) { 
       System.out.println("button selected"); 
      } else { 
       System.out.println("button not selected"); 
      } 
     } 
     }); 

     JOptionPane.showMessageDialog(null, toggleBtn); 
    } 
} 
+0

respuesta mucho más al punto. +1 en el – KJW

+0

Me temo que se basa en el orden de eventos. Cuando se llama a 'actionPerformed' antes de que el botón interno alterne al oyente, se obtiene el [resultado opuesto] (https://weblogs.java.net/blog/alexfromsun/archive/2011/06/15/swing-better-world- oyentes). – maaartinus

Cuestiones relacionadas