Java 切换按钮事件不会在选择完成时触发,但会在鼠标悬停时触发
Java toggle button event not fired when selection is done but fired when mouse hovered
我有一个切换按钮,我将其状态设置如下
public void setSizeFeet(boolean enabled) {
this.size_tb.setSelected(enabled);
}
我有听众
size_tb.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent evt) {
size_tbStateChanged(evt);
}
});
private void size_tbStateChanged(javax.swing.event.ChangeEvent evt) {
if (size_tb.isSelected()){
size_tb.setText("Feet");
} else {
size_tb.setText("Meters");
}
}
当我设置调用第一个方法的状态时出现的问题。什么都没发生。但是,只需将鼠标悬停在按钮上,它就会更新以显示正确的文本。我打断了一个点,我注意到当我将鼠标悬停在按钮上时事件就会触发。设置选择或鼠标单击而不是悬停时不应该吗)
谢谢
使用 ActionListener:
new JToggleButton().addActionListener(new ActionListener() {
@Override
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");
}
}
});
或者您可以使用 ItemListener:
ItemListener itemListener = new ItemListener() {
public void itemStateChanged(ItemEvent itemEvent) {
int state = itemEvent.getStateChange();
if (state == ItemEvent.SELECTED) {
System.out.println("Selected");
} else {
System.out.println("Deselected");
}
}
};
我有一个切换按钮,我将其状态设置如下
public void setSizeFeet(boolean enabled) {
this.size_tb.setSelected(enabled);
}
我有听众
size_tb.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent evt) {
size_tbStateChanged(evt);
}
});
private void size_tbStateChanged(javax.swing.event.ChangeEvent evt) {
if (size_tb.isSelected()){
size_tb.setText("Feet");
} else {
size_tb.setText("Meters");
}
}
当我设置调用第一个方法的状态时出现的问题。什么都没发生。但是,只需将鼠标悬停在按钮上,它就会更新以显示正确的文本。我打断了一个点,我注意到当我将鼠标悬停在按钮上时事件就会触发。设置选择或鼠标单击而不是悬停时不应该吗)
谢谢
使用 ActionListener:
new JToggleButton().addActionListener(new ActionListener() {
@Override
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");
}
}
});
或者您可以使用 ItemListener:
ItemListener itemListener = new ItemListener() {
public void itemStateChanged(ItemEvent itemEvent) {
int state = itemEvent.getStateChange();
if (state == ItemEvent.SELECTED) {
System.out.println("Selected");
} else {
System.out.println("Deselected");
}
}
};