java - 为什么 JTabbedPane 的 ChangeListener 会随着主 JFrame 的启动而加载?

标签 java swing joptionpane jtabbedpane changelistener

以下是我的 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/

相关文章:

java - 在Swing中画一个简单的折线图

java - 为什么我的表在 JScrollPane 中时不可见?

java - 将图像置于面板中间

java - JOptionPane 按钮大小(Nimbus LAF)

java - 更改 JOptionPane.showInputDialog 选项的文本大小

java - 使用 Java 将 NAMES TYPED IN CAPITALS 列表更改为 Names Typed In Capitals with Java

java - 无法创建服务异常 javax.xml.ws.WebServiceException :

java - Android 10,华为mate30,当我从应用程序跳转到APN设置页面时,没有数据!

java - 使用 java 删除给定 url 的文件

java - JOptionPane 中的排列