Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaSwing1.6到1.5_Java_Swing - Fatal编程技术网

JavaSwing1.6到1.5

JavaSwing1.6到1.5,java,swing,Java,Swing,是否可以将使用Java1.6中的Swing开发的UI移植到Java1.5中,而无需再次重写 如果您只使用了两者之间的共同功能,我会说是的。它应该是向后兼容的。在添加JDK 6特定功能的那一刻,您必须将其删除。请详细说明duffymo所说的: Java被设计为向后兼容。 也就是说,如果你在1.5中写了一些东西,你可以在1.6中运行它。 当然,这是有限制的(例如,像assert这样的新保留字会破坏它),但一般来说,它工作得很好 如果你走另一条路,那就有点危险了。 您当然不需要重写所有代码,但您可能已

是否可以将使用Java1.6中的Swing开发的UI移植到Java1.5中,而无需再次重写

如果您只使用了两者之间的共同功能,我会说是的。它应该是向后兼容的。在添加JDK 6特定功能的那一刻,您必须将其删除。

请详细说明duffymo所说的:

Java被设计为向后兼容。 也就是说,如果你在1.5中写了一些东西,你可以在1.6中运行它。 当然,这是有限制的(例如,像assert这样的新保留字会破坏它),但一般来说,它工作得很好

如果你走另一条路,那就有点危险了。 您当然不需要重写所有代码,但您可能已经使用了自1.6版以来才可用的功能。这些特性可以是新类,也可以是现有类的新方法

另一件事是二进制代码级别。您可以将编译器设置为运行1.6,以便为1.5甚至1.4创建代码

但是请注意,您的1.6编译器肯定是针对1.6 rt.jar编译的。这意味着您在实际使用1.5运行或编译代码之前不会注意到缺少的类或方法

设置遵从性级别只意味着1.5JRE将理解代码,而不是所有“默认”类都可用


我对1.6的细节没有任何经验,但我认为,虽然1.5增加了许多新的语言功能(这些功能与1.4不完全兼容),但1.6更像是一个维护版本。

由于Swing在过去十年中变化不大,您不应该遇到很多问题。与Java5相比,Java6也没有太多新特性(主要是内部清理)


我建议您试着用Java5编译应用程序并运行它。它可能是开箱即用的。

如果您想确保代码在1.5环境中运行,请将IDE设置为基于1.5 JDK构建,这样您就不会无意中使用任何新API

试试看,把坏掉的东西修好。你的问题太笼统了。我们不知道您只使用了哪些java6特性。一般来说是的,这是可能的。我发现破坏代码的都是javax.swing.GroupLayout。现在是时候找到替代这个的东西了。请参阅我的回复,了解关于组布局和JDK5的一些指针。JDK6中的Swing有一些附加功能,如支持系统通知区域、基线、组布局等。。。幸运的是,它们中的大多数都是从外部库集成的,而外部库应该仍然可用。如果所有其他方法都失败了,您可以为Swing 6添加额外的类,并在Java 5下运行它们。当然,除非他们使用DLL。但我发现Java中的一些问题,蛮力方法非常有效。我不确定这在swing中是否有效。JComponent中有一些新方法(如getBaseline),这些方法由组布局使用。如果只提取组布局,它将不起作用。替换整个秋千。。。好吧,也许你可以让它工作,但由于包装密封的原因,这并不容易。好吧,这有点超出了最初的问题想要的。这完全取决于客户端代码使用了多少Swing 6特性。如果没有,那么就需要重新编译并运行。