Получение состояния JToggleButton
Скажем, у меня есть
JToggleButton but = new JToggleButton("OK") ;
Теперь мне нужно состояние but
при нажатии. Я имею в виду, что мне нужно знать, было ли это нажато или нет.
Ответы
Ответ 1
Вы также можете использовать метод itemListener itemStateChanged, например:
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");
}
Ответ 2
Чтобы ответить на клики, добавьте 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);
}
}