以下是我的 ChangeListner 方法的快照,当我运行我的项目时,在我实际到达 tabbedPan 之前 JOptionDialog 弹出(实际上与 jframe 加载一起)!我的实际目的是我想监听选项卡的更改,以便我可以从数据库加载该选项卡上的一些内容!帮帮我
jTabbedPane1.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent evt) {
jtabpanChangeListner(evt);
}
});
private void jtabpanChangeListner(ChangeEvent evt) {
// TODO add your handling code here:
int index = jTabbedPane1.getSelectedIndex();
String msg = jTabbedPane1.getTitleAt(index);
System.out.println("Tab changed to: " +msg);
JOptionPane.showMessageDialog(jTabbedPane1,"hello change me do you?+");}
最佳答案
当选定的选项卡发生更改时,JTabbedPane 会发送 ChangeEvent。特别是,当 JTabbedPane 为空并且您添加第一个选项卡时,JTabbedPane 将发送 ChangeEvent,这意味着所选选项卡从 null 更改为某些内容。
您需要考虑第一个更改事件,或者在将第一个选项卡添加到 JTabbedPane 后添加 ChangeListener。
关于java - 为什么 JTabbedPane 的 ChangeListener 会随着主 JFrame 的启动而加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22398915/