所以我希望按钮Select
位于按钮Back
上方,我不希望它们相互重叠。但是当我将它们设置为PAGE_END
时,它们会重叠。我该如何解决这个问题?
以下是问题的代码:
public void methodName() {
JPanel controls = new JPanel(new BorderLayout(5,5));
final CardLayout cl = new CardLayout();
final JPanel panel = new JPanel(cl);
controls.add(panel);
this.getContentPane().setLayout(new FlowLayout(FlowLayout.LEADING));
list = new JList<Object>(objectName);
list.setVisibleRowCount(7);
select = new JButton("Select");
back = new JButton("Back");
select.addActionListener(this);
controls.add(new JScrollPane(list));
controls.add(select, BorderLayout.PAGE_END);
controls.add(back, BorderLayout.PAGE_END);
controls.setBorder(new EmptyBorder(25,25,0,0));
add(controls);
refreshFrame();
}
以下是添加但重叠时的样子:
这就是我想要的样子:
有什么想法吗?
提前致谢!
答案 0 :(得分:3)
使用JButtons
像这样将JPanel
放在新的GridLayout
上
JPanel basePanel = new JPanel(new GridLayout(0, 1, 0, 3));
basePanel.add(select);
basePanel.add(back);
controls.add(basePanel, BorderLayout.PAGE_END);
GridLayout
可以在constructor中的按钮之间提供垂直间隙,如问题所示
答案 1 :(得分:2)
使用gridLayout(2,1)创建一个新的jpanel,然后将两个按钮添加到jpanel,然后将Jpanel添加到Jframe