碰到swing的JTabbedPane升级jdk后的问题

       最近将一个java项目进行软件升级,以前是jdk1.4.2下编译和运行的,现在要统一升级到1.6的最新版本,在其他都升级安装配置好后,java客户端登进去,发现有些界面不能正常操作,后来经过2天调试跟踪,终于发现jdk1.6 的JTabbedPane中  removeTabAt 方法不和jdk1.42有差异。jdk1.6中多了一段:

        /* if the selected tab is after the removal */
        if (selected > index) {
            setSelectedIndexImpl(selected - 1, false);

        /* if the selected tab is the last tab */
        } else if (selected >= getTabCount()) {
            setSelectedIndexImpl(selected - 1, false);
            Page newSelected = (selected != 0)
                ? (Page)pages.elementAt(selected - 1)
                : null;

            changeAccessibleSelection(null, oldName, newSelected);

        /* selected index hasn't changed, but the associated tab has */
        } else if (index == selected) {
            fireStateChanged();
            changeAccessibleSelection(null, oldName, (Page)pages.elementAt(index));
        }

 

   终于找到原因,迫不得已修改程序。也不知道jdk1.6以后swing其他控件是否也有类似改变。

 

注:后来对比jdk1.5的源码,在jdk1.5.09中也没有加这一段代码。

 

你可能感兴趣的:(swing)