我想使用 Java 6 中新增的 JTable 行排序器。但我还需要它在 Mac OSX 中与 Java 5 兼容。
是否可以在运行时找出 JVM 版本,并为带有和不带有行排序器的 JTable 使用不同的代码?
您总是可以使用SwingX库中的 JXTable。它具有内置的排序功能。
您可以在系统属性“java.version”中找到 JVM 版本。
将 JTable 排序器对象的源复制到您的项目中并使用它。请注意,除非您拥有 Sun 的许可证,否则您不得分发此文件。因此,这对于您只在自己或公司内部使用的东西是可以的。出售或将其放在网上供下载是不行的。伊纳尔。
编写一个实现排序器接口的辅助类。在这个类中,放置以下代码:
类 sorterClass = Class.forName("javax.swing.table.TableRowSorter");
当这引发 ClassNotFoundException 时,则该类不可用。如果是,请使用 Reflection onsorterClass
创建一个实例并将其安装在桌子上。
注意:您不得在任何地方导入任何 Java 6 类!如果这样做,加载帮助程序类将失败。此外,您必须使用 Java 5 编译代码。