2011-09-23 43 views

risposta

41

È inoltre possibile utilizzare il metodo itemStateChanged del ItemListener come segue:

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

e si desidera conoscere lo stato di jtb quest'ultimo sull'uso isSelected() metodo

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

yep un buon modo per implementare questo, 1+ :) –

+0

Grazie aHarry Joy. È una vera e propria elaborazione ... :) – Dewsworld

+1

Poiché Java8 è possibile utilizzare l'espressione lambda ma.addItemListener ((ItemEvent ev) -> {/ * il codice * /} –

14

Per rispondere ai clic, aggiungere un ActionListener a JToggleButton. Per trovare lo stato, proprio come un JRadioButton, chiama il metodo isSelected().

Per esempio,

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

molto più al punto di risposta. + 1'd – KJW

+0

Ho paura che si basi sull'ordinazione degli eventi. Quando si preme 'actionPerformed' prima del pulsante interno che attiva il listener, si ottiene il [risultato opposto] (https://weblogs.java.net/blog/alexfromsun/archive/2011/06/15/swing-better-world- ascoltatori). – maaartinus

Problemi correlati