以下是我运行项目时在实际到达tabbedPan之前我的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?+");}

最佳答案

当选定的选项卡更改时,JTabbedPane发送ChangeEvent。特别是,当JTabbedPane为空并添加第一个选项卡时,JTabbedPane将发送ChangeEvent,这意味着所选选项卡已从null变为某些内容。

您需要考虑第一个更改事件,或者在将第一个选项卡添加到JTabbedPane中之后添加ChangeListener。

07-24 18:50