java为什么JTabbedPane的ChangeListener在主JFrame启动时加载?
下面是我运行项目时,在实际到达选项卡之前,我的ChangeListner方法的快照 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?+");}
# 1 楼答案
当所选选项卡更改时,JTabbedPane发送ChangeEvent。特别是,当JTabbedPane为空并且您添加了第一个选项卡时,JTabbedPane将发送ChangeEvent,这意味着所选选项卡从null更改为其他内容
您需要考虑第一个更改事件,或者在将第一个选项卡添加到JTabbedPane后添加ChangeListener