Java Swing在不同的操作系统中定位元素的方式不同

时间:2010-03-11 11:12:52

标签: java linux swing netbeans

我编写了一个在Windows,Mac OS X,Ubuntu和Open Suse中运行的Java桌面应用程序。我遇到的问题是在Linux中定位不同的东西。

我使用设计器使用NetBeans开发了应用程序,它看起来像我在Windows和Mac OS X中所期望的那样,但在Linux发行版中,某些标签控件已经转移到不同的位置。

这是否有共同的原因?

4 个答案:

答案 0 :(得分:2)

也许Linux使用不同的字体。字母宽度不同的地方。

您可以尝试明确地为Look& Feel设置特定字体。它应该是安装在所有目标平台上的字体。

答案 1 :(得分:1)

最可能的是,您为每个平台使用不同的外观。如果您在Windows中进行开发,则只能使用适合Window样式的布局。但Linux具有不同的L& F,具有不同的边距和GUI组件的字体。金属样式(Linux基本版)及其后代(Nimbus和GTK +)具有较大的默认系统字体和组件高度。我认为,这必然是你有转变的原因。

解决这个问题的方法是检查两个平台上的程序。我建议使用Metal风格进行开发,因为Windows有较小的字体,因此适合Metal的所有东西都适合Windows。

答案 2 :(得分:0)

我假设你在Windows或Mac上开发了这个东西,这就是为什么它看起来像“预期的那样”。您可以在Linux上的IDE中编译/运行代码并查看它的外观吗?

我的猜测是容器的一个实现是有缺陷的。我有时会在进行交叉开发时看到这种情况,并且大多数都会通过试错来修复它(通过更改使用其他类)。它还帮助一个开发人员在Windows中工作,另一个开发人员在Linux中工作,这样我们就可以轻松发现并修复问题区域。

答案 3 :(得分:0)

我将布局样式从“自由设计”更改为“绝对”