有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    当所选选项卡更改时,JTabbedPane发送ChangeEvent。特别是,当JTabbedPane为空并且您添加了第一个选项卡时,JTabbedPane将发送ChangeEvent,这意味着所选选项卡从null更改为其他内容

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