我想检测选项卡何时更改并检索所选索引。我找到的所有示例似乎都已过时,并且我无法成功实现它们。
它迫使我将changeListener转换为javax.swing.event.ChangeListener,但同时不允许我编译它。我哪里出错了?
ChangeListener changeListener = new ChangeListener() {
public void stateChanged(ChangeEvent e) {
JTabbedPane sourceTabbedPane = (JTabbedPane) e.getSource();
int index = sourceTabbedPane.getSelectedIndex();
System.out.println("Tab changed to: " + index);
}
@Override
public void changed(ObservableValue arg0, Object arg1, Object arg2) {
// TODO Auto-generated method stub
}
};
tabbedPane.addChangeListener((javax.swing.event.ChangeListener) changeListener);
最佳答案
当您调用new ChangeListener
时,您实现了错误的ChangeListener
。检查您的进口。您应该实现 javax.swing.event.ChangeListener
,但看起来您实际上正在实现 javafx.beans.value.ChangeListener
。
如果您不想更改导入,以下操作也可以。
javax.swing.event.ChangeListener changeListener = new javax.swing.event.ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
JTabbedPane sourceTabbedPane = (JTabbedPane) e.getSource();
int index = sourceTabbedPane.getSelectedIndex();
System.out.println("Tab changed to: " + index);
}
};
tabbedPane.addChangeListener(changeListener);
关于java - ChangeListener 未按 JTabbedPane 的预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44271893/