碰到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中也没有加这一段代码。
?