0

我花了很多时间试图创建一个我认为非常简单的 GUI。使它变得简单的一件事是我什至不希望它是 resizeable。我希望它以我布置的方式显示。就那么简单。

有一个 JFrame 包含两个等宽的 Jpanel,一个在另一个之上。我终于让 JPanel 自动运行了,我可以滑动它们而不会使它们封闭的组件神秘地移动。

但我一辈子都无法让 JFrame 很好地包围 JPanel。我附上一个显示布局和检查器的屏幕截图,另一个显示它如何预览在此处输入图像描述

(请注意,它正在切断底部边缘。)

有什么方法可以在 GUI 构建器中以“所见即所得模式”工作?在这一点上,我根本不关心(事实上,我害怕)可调整大小。我原以为 Absolute Layout 会是正确的选择,但还是有问题。(我需要一个基本的解决方案,伙计们——请不要建议使用 GridBagLayout !!;)

编辑:通过将一些默认值(主要是MaximumSize)恢复到JFrame,我摆脱了剪裁问题。右边缘仍然偏离了一个像素,我设法找到了五个(五个!)宽度属性中的哪一个控制了它。(边界,最大尺寸,最小尺寸,首选尺寸和宽度 - 改变最小尺寸固定。)

我已经发现您无法完全避免调整属性(例如,覆盖“捕捉”并实现像素精确定位)。我显然在某些时候通过玩一些我不应该拥有的属性给自己带来了麻烦。问题仍然存在:对于不可调整大小、所见即所得的 GUI 设计,Absolute Layout 是一个可靠的选择吗?并且,我应该避免编辑哪些属性?

4

1 回答 1

1

当您实际运行时,JFrame 是否显示比预览更好?我认为这是 OS X 特定的 NB 行为。我在 Win32 中没有看到这个。现在,您可以尝试在底部添加一个 JLabel(空格作为文本内容),以确保在实际 JFrame 运行时绘制空间。

于 2011-08-21T18:24:24.060 回答