我花了很多时间试图创建我认为非常简单的GUI。简单的一件事是我甚至不希望它可以调整大小。我希望它能够显示出我铺设它的方式。就这么简单。
有一个JFrame包含两个宽度相等的Jpanel,一个在另一个之上。我终于让JPanel表现得很好,我可以滑动它们,而不会让它们的封闭组件神秘地移动。
但我不能为我的生活让JFrame很好地封装JPanels。我附加了一个显示布局和检查器的屏幕截图,另一个显示了它如何预览
(请注意,它正在切断底边。)
有没有办法在GUI构建器中以“WYSIWYG模式”工作?在这一点上,我根本不关心(实际上,我害怕)可调整性。我原以为绝对布局会是这个的正确选择,但仍然有问题。 (我需要一个初级解决方案,大家 - 请不要建议GridBagLayout !!;)
编辑:通过将一些默认值(主要是针对MaximumSize)恢复到JFrame,我摆脱了剪辑问题。右边缘仍然偏离一个像素,我设法找到五个(五个!)宽度属性中的哪一个控制它。 (边界,最大尺寸,最小尺寸,首选尺寸和宽度 - 改变最小尺寸固定。)
我已经发现你不能完全避免调整属性(例如覆盖“捕捉”并实现像素精确定位)。我在某些方面通过玩一些我不应该拥有的属性显然给自己制造麻烦。问题仍然存在:对于不可调整大小的所见即所得的GUI设计,Absolute Layout是一个可靠的选择; 和,我应该避免编辑哪些属性?
答案 0 :(得分:1)
JFrame在实际运行时是否比预览更好?我认为这是OS X特定的NB行为。我在Win32中没有看到这个。现在,您可以尝试在底部添加JLabel(空格作为文本内容),以确保在实际JFrame运行时绘制空间。