我正在尝试制作一个顶部有 4 个项目的面板。这些是 JLabel
、JTextField
、JLabel
和 JTextField
。
在中心,我需要一个 JTextArea
,在它的左边是一个可滚动的 JList
。
在底部我需要 3 个按钮。
最好的布局管理器是什么?我应该怎么做?
只有 3 列是个好主意吗?
这是我目前所拥有的:
JPanel panel = new JPanel();
JTextField IDLabel = new JLabel("ID: ");
IDLabel.setBounds(10, 10, 80, 25);
panel.add(IDLabel);
JTextArea IDText = new JTextField(5);
IDText.setBounds(100, 10, 160, 25);
panel.add(IDText);
JLabel TitleLabel = new JLabel("Title: ");
TitleLabel.setBounds(10, 10, 80, 25);
panel.add(TitleLabel);
JTextField TitleText = new JTextField(10);
TitleText.setBounds(100, 10, 160, 25);
panel.add(TitleText);
JList list = new JList(new String[]{"test1", "test22"});
list.setFixedCellWidth(150);
list.setFixedCellHeight(50);
list.setFont(new Font("Serif",Font.BOLD,16));
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
panel.add(list);
JTextArea BodyArea = new JTextArea();
BodyArea.setSize(200, 200);
BodyArea.setText("Test area");
panel.add(BodyArea);
最佳答案
例如,您很可能需要使用布局组合(AKA 复合布局)
北面板
创建一个 JPanel
并根据您想要实现的目标为其分配一个 FlowLayout
或 GridBagLayout
或 GridLayout
.
向其中添加JLabel
、JTextField
、JLabel
、JTextField
。
中心面板
使用 BorderLayout
创建一个 JPanel
。将JTextArea
添加到CENTER
位置,将JList
添加到WEST
位置
南面板
使用 FlowLayout
或 GridBagLayout
或 GridLayout
创建一个 JPanel
,具体取决于您想要实现的目标。
向其中添加按钮。
把它放在一起
创建一个带有BorderLayout
的JPanel
,将“north”面板添加到NORTH
位置,将“center”面板添加到CENTER
位置和“south”面板到 SOUTH
位置
您可以使用一个容器和一个 GridBagLayout
,但这需要大量工作。
关于手动Java GUI开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23464654/