1

所以我希望按钮在按钮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();
}

这是它们都被添加但重叠时的样子:

问题(重叠)

这就是我想要的样子:

这就是它应该的样子

有任何想法吗?

提前致谢!

4

2 回答 2

3

像这样将 2JButtons放在新的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可以在其构造函数中的按钮之间提供垂直间隙,如您的问题所示

于 2013-08-03T20:07:38.907 回答
2

使用 gridLayout(2,1) 创建一个新的 jpanel 然后将两个按钮添加到 jpanel 然后将 Jpanel 添加到 Jframe

于 2013-08-03T20:08:47.457 回答