代码之家  ›  专栏  ›  技术社区  ›  KJW

jpanel:如何在表上方添加按钮?

  •  2
  • KJW  · 技术社区  · 14 年前
        JPanel panel = new JPanel();
        bigbutton = new JButton("Big Button");
        clearbutton = new JButton("Clear Page");
        resetbutton = new JButton("Start Over");
        finishbutton = new JButton("Finish");
    
    
        panel.add(sometable);
        return panel; 
    

    现在发生的是它们水平伸展。我要四个按钮水平地放在桌子上。

    2 回复  |  直到 14 年前
        1
  •  1
  •   trashgod    14 年前

    现在发生的是它们水平伸展。

    除了@tulskiy's和@andrew thompson的建议之外,注意 JPanel FlowLayout 将组件排列成水平行。

    附录:

    改变 面板 流程布置 BorderLayout 或者其他布局?

    选择一个布局在一定程度上是一个品味问题,但是我将结合建议的方法,如中所示 How to Use Tool Bars . 注意如何 ToolBarDemo 延伸 面板 然后调用超类构造函数来指定 BorderLayout() :

    public class ToolBarDemo extends JPanel implements ActionListener {
        ...
        public ToolBarDemo() {
            super(new BorderLayout());
            ...
            JToolBar toolBar = new JToolBar("Still draggable");
            addButtons(toolBar);
            ...
            setPreferredSize(new Dimension(450, 130));
            add(toolBar, BorderLayout.PAGE_START);
            add(sometable, BorderLayout.CENTER);
        }
        ...
    }
    

    如果没有扩展名,只需直接使用构造函数:

    JPanel panel = new JPanel(new BorderLayout());
    

    或者,使用 setLayout() 方法继承者 面板 .

    JPanel panel = new JPanel();
    panel.setLayout(new BorderLayout());
    
        2
  •  2
  •   Denis Tulskiy    14 年前

    将面板的布局设置为borderlayout,将按钮添加到框中,使用borderlayout.page_start约束将框添加到面板中,使用borderlayout.center约束添加表。