Java UI 布局选择

Java UI Layouts Choice

大家好,我对UI设计和这个社区都比较陌生,所以请放轻松。

总结: 我目前正在尝试使用 Java swing 为本机桌面应用程序设计 GUI。像大多数初学者一样,我目前正在使用 Netbeans 作为 UI 构建器来简化这个过程,我通过观看一大堆关于如何制作好看的 Youtube 教程来开始我的过程 UI,我看到他们中的许多人使用“AbsoluteLayout”,所以我也这样做了。

努力: 我已经使用 AbsoluteLayout 构建了一个相当令人满意的 UI 所有 JPanel 和 JFrames。问题是我的“编码老手”朋友在检查 UI 后说使用 AbsoluteLayout 是绝对不能接受的,快速浏览一下这个论坛和 Oracle Java 指南就会发现类似的观点.我个人曾尝试混合使用 BorderLayout 和 FlowLayout 来展示我的 UI,尽管这很麻烦,我不想这样做。

问题: 我可以使用 GroupLayout(我认为是免费设计)吗?我注意到,在 Netbeans 的帮助下,它对于初学者来说非常容易使用(只需拖放,没有太多限制),或者它是否也有明显的缺点?如果用它来设计 UI 而不是标准的 Border, Flow, Grid 布局,是否会以某种方式被人看不起(或被认为是廉价的)?

注意: 值得一提的是,Jframe 是未修饰的,我不打算让用户能够最大化或调整 window(两者都很残忍我知道我很懒)。

提前致谢!

我当前使用 AbsoluteLayout 的 Gui:

我的 GUI 在考虑 Grouplayout

之前尝试混合使用 Flow 和 Borderlayout

使用布局管理器的要点在于,它可以让您从逻辑上思考如何对所有组件进行分组以及这些组件在调整框架大小时应如何反应。即使此应用程序可能不会调整大小,您也需要了解此信息以备将来使用。

然后布局通常通过从 JFrame 的默认 BorderLayout 开始,然后创建具有不同布局管理器的子面板来完成。您还可以根据需要的布局嵌套面板。

因此,请先阅读 Layout Manager 上的 Swing 教程,了解每个布局管理器的基础知识。

所以我明白了:

  1. 您从可以添加到 BorderLayout.LINE_START 的 JPanel 开始。该面板可以使用垂直的 BoxLayout。然后,您可以在每组组件之间添加“胶水”以提供间距以及组中每个组件之间的“垂直支柱”。

  2. 然后您创建另一个面板“center”,再次使用 BorderLayout 并将此面板添加到 BorderLayout.CENTER。此面板将有 3 个子面板:

  3. 向“中心”面板添加一个面板到 BorderLayout.PAGE_START。此面板可能使用水平 BoxLayout 或 FlowLayout。

  4. 向“中心”面板添加一个面板到 BorderLayout.CENTER。该面板可以使用 GridBagLayout。

  5. 向“中心”面板添加一个面板到 BorderLayout.PAGE_END。此面板将使用 GridLayout。

是的,前几次设计 GUI 会花费更多时间,但在漫长的过程中 运行 花时间学习 Java/Swing 和没时间学习如何使用 IDE。无论您使用什么 IDE,您的代码都将是可维护的,而不是依赖于给定的 IDE。使用 IDE 来帮助调试等,但不要让它生成任何 IDE 依赖代码。