2013-01-23 58 views
4

我是Java Swing的新手。我想要設計一個JToolBarJToolBar應放置在JPanel的中心。可能嗎?如何在JPanel,Java Swing中添加JToolBar?

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); 
+0

如果已經使用再_BorderLayout_其他張貼代碼嘗試這將是非常難以猜測。 – Amarnath

+0

1)請參閱[在JPanel上居中定位JLabel](http://stackoverflow.com/a/7181197/418556)獲取提示。 2)爲了更快地獲得更好的幫助,請發佈[SSCCE](http://sscce.org/)。 –

回答

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這裏的用法。並在代碼中進行必要的更改。

UPDATE:

我一直在使用你的代碼,這樣表示輸出試過。我已經使用尺寸爲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); 
} 
+0

當我嘗試使用我的代碼時,我也得到了相同的結果。是否可以在工具欄的中心位置顯示'點我'按鈕? – boopathy

+0

@boopathy看看我的更新。我用addSeparator來做到這一點。我不確定這是否正確。這將解決你的目的。但請確保你知道這樣做的正確方式,請讓我知道。 – Amarnath

+0

工作正常......謝謝(@Che)......但是,爲什麼它不會在JPanel中發生? – boopathy

3

如果JPanelBorderLayout你放在BorderLayout.CENTERJToolBar,你必須在NORTHSOUTHEASTWEST組件,然後我不明白了一個道理,爲什麼它不會工作。

+0

我也嘗試過這種方式,但那沒有奏效,這就是爲什麼發佈這個問題。 – boopathy

+0

很難猜出你的情況是什麼「不起作用」。發佈一些代碼,截圖,無論你有什麼。 –

+0

'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);' – boopathy