我正在试着做一个面板,上面有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);发布于 2014-05-05 12:18:19
例如,您很可能需要使用布局的组合(AKA复合布局
北面板
创建一个JPanel,并根据您要实现的目标为其分配一个FlowLayout、GridBagLayout或GridLayout。
在其中添加JLabel、JTextField、JLabel、JTextField。
中心面板
使用BorderLayout创建JPanel。将JTextArea添加到CENTER位置,将JList添加到WEST位置
南面板
根据您想要实现的目标,使用FlowLayout、GridBagLayout或GridLayout来创建JPanel。
将按钮添加到其中。
将其组合在一起
创建一个带有BorderLayout的JPanel,将“北”面板添加到NORTH位置,将“中心”面板添加到CENTER位置,将“南”面板添加到SOUTH位置
您可以使用单个容器和一个GridBagLayout,但这需要大量的工作。
有关更多详细信息,请查看Laying Out Components Within a Container
发布于 2014-05-05 12:14:23
也许可以从主布局的BorderLayout开始。然后,可以将零部件添加到PAGE_START (北)、LINE_START (西)和PAGE_END (南)。有关更多信息和示例,请查看Using Layout Manager上的Swing教程中的部分。
当然,当您想要在单个区域中显示多个组件时,也可以使用面板。因此,您的按钮将首先添加到面板中。
此外,请遵循标准的命名约定。变量名称不应以大写字符开头(即BodyArea,TitleText)。你像(panel,list)这样的变量是正确的,所以要保持一致。
https://stackoverflow.com/questions/23464654
复制相似问题