Java - GridLayout调整JPanel的大小

时间:2014-02-27 17:08:25

标签: java user-interface

我正在尝试调整另一个具有GridLayout的JPanel中每个JPanel的高度。

这是我到目前为止所做的:

JPanel store = new JPanel();
store.setLayout(new GridLayout(4, 0));

JPanel computerPanel = new JPanel();
computerPanel.setBorder(BorderFactory.createTitledBorder("Computers"));
computerPanel.setPreferredSize(new Dimension(20, 30));

JPanel cablesPanel = new JPanel();
cablesPanel.setBorder(BorderFactory.createTitledBorder("Cables"));

JPanel accessoriesPanel = new JPanel();
accessoriesPanel.setBorder(BorderFactory.createTitledBorder("Accessories"));

JPanel repairPanel = new JPanel();
repairPanel.setBorder(BorderFactory.createTitledBorder("Repair"));

store.add(computerPanel);
store.add(cablesPanel);
store.add(accessoriesPanel);
store.add(repairPanel);

JPanel view = new JPanel();
view.setLayout(new BorderLayout());
view.add(store, BorderLayout.CENTER);

add(view);

这是GUI输出的内容: Screen shot

我想在JPanel商店内调整每个JPanel(computerPanel,cablelPanel,accessoriesPanel,repairPanel)的大小。

我试过了:

computerPanel.setPrefferedSize()但这不起作用......

1 个答案:

答案 0 :(得分:2)

如果您希望能够调整每个JPanel的大小,则不使用相应的LayoutManager。 GridLayout(您现在正在使用)特别不允许进行此类调整,而是将每个单元格固定为完全相同的大小。

考虑使用不同的LayoutManager,例如BoxLayout或GridBagLayout。

请参阅here以确定哪种LayoutManager最适合您的需要。