如何在JPanel,Java Swing的中心添加JToolBar?

时间:2013-01-23 08:28:46

标签: swing jpanel border-layout jtoolbar

我是Java Swing的新手。我想设计一个JToolBarJToolBar应放在JPanel的中心。可能吗?

javax.swing.JPanel pane = new javax.swing.JPanel(); 
BorderLayout border = new BorderLayout(); 
pane.setLayout(border); 
JToolBar toolBar = new JToolBar(); 
pane.add(toolBar,BorderLayout.CENTER); 
javax.swing.JButton button1 = new javax.swing.JButton("Click Me"); 
toolBar.add(button1);

2 个答案:

答案 0 :(得分:4)

了解How to use ToolBars

以下代码直接来自doc

public ToolBarDemo() {
    super(new BorderLayout());
    ...
    JToolBar toolBar = new JToolBar("Still draggable");
    addButtons(toolBar);
    ...
    setPreferredSize(new Dimension(450, 130));
    add(toolBar, BorderLayout.PAGE_START);
    add(scrollPane, BorderLayout.CENTER);
}

请在此处查看BorderLayout的用法。并对代码进行必要的更改。

<强>更新

我尝试过使用代码来显示这样的输出。我使用了addSeparator方法和维度。 This is just a try to solve the problem. I am not sure whether this approach is the correct way.

enter image description here

public static void main(String[] args) {
    JFrame frame = new JFrame();
    JPanel panel = new JPanel(new BorderLayout()); 
    JToolBar toolBar = new JToolBar(); 
    panel.add(toolBar,BorderLayout.PAGE_START);

    toolBar.addSeparator(new Dimension(150, 0));

    JButton button1 = new JButton("Click Me"); 
    toolBar.add(button1);
    frame.setLayout(new BorderLayout());
    frame.add(panel, BorderLayout.CENTER);
    frame.setSize(new Dimension(400, 100));
    frame.setVisible(true);
}

答案 1 :(得分:3)

如果JPanel有一个BorderLayout并且您将JToolBar放在BorderLayout.CENTER中,并且NORTH中有SOUTHEAST,{ {1}}和WEST然后我看不出它为什么不起作用的原因。