2011-09-23 10 views

Odpowiedz

41

Można również użyć metodę itemListener za itemStateChanged jak następujące:

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

i chcesz poznać stan jtb ostatnim dniu stosowania isSelected() metoda

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

Tak, dobry sposób na wdrożenie tego, 1+ :) –

+0

Dzięki @Harry Joy. To naprawdę dobre opracowanie ... :) – Dewsworld

+1

Od Javy można używać wyrażenia lambda ale.addItemListener ((ItemEvent ev) -> {/ * Twój kod * /} –

14

Aby odpowiedzieć na kliknięcia, dodaj ActionListener do JToggleButton. Aby znaleźć jego stan, podobnie jak JRadioButton, wywołaj metodę isSelected().

Dla np,

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

o wiele więcej do punktu odpowiedzi. + 1'd – KJW

+0

Obawiam się, że polega to na zamawianiu zdarzeń. Kiedy 'actionPerformed' zostanie wywołane przed wewnętrznym przełącznikiem przełączającym przycisk, otrzymasz [odwrotny wynik] (https://weblogs.java.net/blog/alexfromsun/archive/2011/06/15/swing-better-world- słuchacze). – maaartinus