跨平台UI间距/填充

时间:2011-06-12 23:31:14

标签: java linux macos swt miglayout

我使用SWT UI库和MigLayout布局库编写了一个Java UI。

此页面显示了Windows,Linux和OSX上UI的屏幕截图:http://mchr3k.github.com/org.intrace/screenshots.html

在Linux和OSX上,我的UI有更多的填充和间距,我觉得浪费了大量的屏幕空间。这些平台是正常的吗?如果没有,解决这个问题的最佳方法是什么?

编辑:链接的屏幕截图现在已经更新,不再在OSX上显示额外的差距,因为我已经明确地将我的一些UI元素的边距设置为0. OSX UI仍然相当分散,但我认为这个对于平台是正确的。

2 个答案:

答案 0 :(得分:16)

这是MigLayout的创始人Mikael Grev。

正如其他人提到的,这是MigLayout的一个功能。而不是使用x个像素(当然你也可以使用它)默认情况下它使用的是像相关,无关和段落之类的间隙。这些对应于不同UI工具包中的不同大小。例如,在OS X上,组件之间的推荐空白区域大于Windows。

所以,是的,这就是它应该看起来的样子,对于原生OS X用户来说它看起来是正确的。

尽管在OS X和Windows中,您的输出窗格底部似乎确实有太多的空白区域。

您可以使用MigLayout中的PlatformDefaults类强制平台或更改默认间隙。如果您想知道幕后发生的事情,请查看源代码。

请记住,这是一个功能,因此每个开发人员都不必跟踪不同平台上的间距应该是什么样的,这很难。

干杯, 的Mikael

答案 1 :(得分:1)

如果我没记错的话,这实际上是MigLayout的一个功能。如果您不想这样,我相信您可以这样配置MigLayout。否则,您可以使用不同的布局管理器(但我仍然强烈建议使用基于表格的布局管理器),它对所有平台使用恒定间距(例如我的MatrixLayout)。