0

如何全局压缩 Matisse 生成的 GroupLayout 以及其他间隙间距,以使使用 Matisse 和 GroupLayout 生成的 Swing 对话框更紧凑?

我使用 Matisse 在 Java Swing 中重新实现了一些最初在 Visual Basic 的 GUI 构建器中为 Windows 开发的大型对话框。

Swing Windows L&F 中的结果与原生(一定年龄)非常相似,只是更“分散”。在较低的分辨率下,它们会从屏幕上泄漏。这对应用程序来说是一个真正的问题。

测量显示所有间隙按比例大于 Windows 默认值。(Swing 针对不同分辨率进行缩放的方式也无济于事。)这包括ContainerGapMatisse 发出的 s 和 L&F 控制的 GUI 组件之间的间隙。

我查看了GroupLayout我能找到的文档和马蒂斯文档。我查看ContainerGap了源代码中的 L&F 参数和相关类GroupLayout。没有什么能把我带到我需要去的地方。

所有洞察力都表示赞赏。

4

1 回答 1

3

有太多的方法可能是错误的,并且没有单点调整可以解决它。Visual Basic 版本在其单一目标平台上肯定看起来不错。在设计上,Swing 依赖于pack(),它“Window使它的大小适合其子组件的首选大小和布局”。首选尺寸可能因平台而异,如嵌套布局示例所示相反,应按照此处的建议,研究可用的布局并集中使用 GUI 设计器。

在不了解 Swing 布局的情况下,没有简单的方法可以解决 GUI 设计器中的布局问题;令人高兴的是,GUI 设计器是研究各种 Swing 布局效果的绝佳方式。

于 2013-03-08T21:07:38.117 回答