Получение состояния JToggleButton - PullRequest
22 голосов
/ 23 сентября 2011

скажи, у меня есть

JToggleButton but = new JToggleButton("OK") ;

Теперь мне нужно состояние but при нажатии. Я имею в виду, мне нужно знать, нажали ли они или нет.

Ответы [ 2 ]

50 голосов
/ 23 сентября 2011

Вы также можете использовать метод itemLtateer itemLtateChanged следующим образом:

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

, и вы хотите узнать состояние jtb последнего при использовании isSelected() метода

System.out.println(jtb.isSelected());
if(jtb.isSelected()){
    System.out.println("button is selected");
} else {
    System.out.println("button is not selected");
}
14 голосов
/ 23 сентября 2011

Чтобы реагировать на клики, добавьте ActionListener в JToggleButton.Чтобы определить его состояние, как и JRadioButton, вызовите его метод isSelected ().

Например,

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