所以我是一名计算机科学专业的学生,我已经完成了第一年的学习。我想创建一个简单的程序,但我意识到我已经厌倦了不使用布局;
this.setLayout(null);
为每个单独的组件添加边界是一件令人厌烦的事情。好吧,我一直在大量使用 JPanel
组件和 GridLayout
,这让我的工作变得更加轻松。但是我厌倦了。
我非常关心我制作的 GUI 的外观,并且在我开始添加代码的功能之前,几乎有一半的时间用于编程以使 GUI 看起来不错。通过不使用布局和添加边界,我不得不 setResizable(false)
因为如果我更改 JFrame 的大小它看起来很糟糕。
我搜索了一下,知道 BorderLayout
和 FlowLayout
,但我不喜欢它们。是否有任何布局可以保持组件相对于窗口大小的相对大小?
例如,我想制作一个看起来像这样的简单程序:(Photoshop 中的速写)
我可以用 3 个面板轻松地做到这一点,但正如我所说,如果我更改框架的大小,所有内容都会保持在原位,而不是相对于窗口大小。
你们能帮帮我吗?
最佳答案
我希望这个设计适合 BorderLayout,在 NORTH 中,值发生变化
,在 CENTER 中,你有主要部分,在 SOUTH 中,你有按钮。
Link to the Oracle Border Layout
您可以将此 BorderLayout 应用于 JFrame,然后为 NORTH、CENTER 和 SOUTH 部分分别创建 3 个 JPanel。如果您想对组件和面板使用响应式设计,请查看 GridBagLayout这比 GridLayout 灵活得多
关于java - 布局 - 相对于屏幕尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24462297/