Java Swing/AWT gui 格式

标签 java swing layout-manager

我刚刚学习 Java GUI 和布局管理器,并希望创建具有以下布局的 GUI。解决这个问题的最佳方法是什么? (JFrame 为 1000w x 800h)

这是我想要做的一些成功的事情,以及一个与想要的布局不完全匹配的困惑解决方案完全

JFrame myFrame (GridLayout(2,1))
    - JPanel topPanel (BorderLayout)
        - JPanel topLeftPanel (GridLayout(9,2) & setSize 666,400)
            - JLabel buyingAnInvestment      - Jlabel empty1
            - JLabel type                    - JComboBox typeSelect
            - JLabel symbol                  - JTextField symbolField
            - JLabel empty2                  - JLabel empty3
            - JLabel name                    - JTextField nameField
            - JLabel empty4                  - JLabel empty5
            - JLabel quantity                - JTextField quantityField
            - JLabel empty6                  - JLabel epty7
            - JLabel price                   - JTextField price
        - JPanel topRightPanel (GridLayout(2,1) & setSize 333,400)
            - JButton reset
            - JButton buy
    - JPanel bottomPanel (What should I do for this?)
        - JLabel messages
        - JTextArea & JScrollArea

您将如何布局组件和 JPanel 容器以获得预期结果?任何方向将不胜感激。

最佳答案

如果 GUI 可以将购买投资消息作为TitledBorder,我会将其布局如下:

  • 外部布局 - BorderLayout
    1. 购买投资使用两列标签和字段的GridBagLayout。将其放在边框布局的CENTER 中。
    2. 重置/购买按钮位于单列GridLayout中,具有充足的EmptyBorder和垂直布局填充。将该面板放入边框布局的 LINE_END 中。
    3. 面板/约束中的文本区域将其拉伸(stretch)到完整宽度和高度在边框布局的 PAGE_END 中使用另一个 GridLayout

(JFrame is 1000w x 800h)

不要试图猜测 GUI 需要的大小。布局所有组件,然后 pack() 框架。 GUI 将变为显示其包含的所有内容所需的最小尺寸。

关于Java Swing/AWT gui 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47464365/

相关文章:

java - 为什么使用 jcombobox actionListener 后没有执行 tableModelListener 代码

java - Swing - GridLayout 组件未填满所有可用空间

java - Swing GridBagLayout - 对齐问题

java - 如何调整 Java Swing JTextArea 的大小

java - jaxb 使用自定义日期格式编码 LocalDate

java - 使用埃拉托斯特尼筛法求素数之和;答案太小

java - 如何使用 Thymeleaf 和 spring 将对象或数组从 html 页面发送到 POST 方法

java - JTree 给出 ArrayIndexOutOfBoundsException?

Java数组使用逗号连接?

java - 如何更改子卡中的cardLayout卡?