我刚刚学习 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
购买投资
使用两列标签和字段的GridBagLayout
。将其放在边框布局的CENTER
中。重置
/购买
按钮位于单列GridLayout
中,具有充足的EmptyBorder
和垂直布局填充。将该面板放入边框布局的LINE_END
中。- 面板/约束中的文本区域将其拉伸(stretch)到完整宽度和高度在边框布局的
PAGE_END
中使用另一个GridLayout
。
(
JFrame
is 1000w x 800h)
不要试图猜测 GUI 需要的大小。布局所有组件,然后 pack()
框架。 GUI 将变为显示其包含的所有内容所需的最小尺寸。
关于Java Swing/AWT gui 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47464365/