2012-01-25 62 views
0

我沒有做一段時間後回到鞦韆。 固定大小的按鈕停留在窗口中央的最佳方式是什麼? 如果我使用Borderlayout.south,它會使按鈕太寬。我記不起訣竅窗口底部的JButton

+0

您是否在使用BorderLayout時嘗試調用'button.setPreferredSize(Dimension)'? – fireshadow52

回答

3

通常有兩種方法來處理這個問題。

  • 嵌套,即,創建一個帶邊框佈局的面板。使用流佈局創建另一個面板以將按鈕添加到。把第二面板在第一面板
  • 南部使用一個更復雜的佈局,如GridBagLayoutMiG Layout
+1

+1 JPanel默認實現FlowLayout – mKorbel

+0

@mKorbel好點。 –

2

考慮使用MigLayout。使用Swing非常方便。

int buttonWidth = 100; 
    int buttonHeight = 50; 
    button.setPreferredSize(new Dimension(buttonWidth, buttonHeight)); 
    this.setLayout(new MigLayout("insets 0")); 
    this.add(button, "pos 50%-" + buttonWidth/2 + " 100%-" + buttonHeight); 

有可能是一個核心佈局管理更簡單的方法,或者用MigLayout甚至更簡單的方法,但是這將是我將在第一個接近它的方式。

另一種選擇是在父面板的大小發生變化時使用空佈局和setBounds。大多數Swing程序員會建議使用空佈局,在這種情況下,您可以查看BoxLayout。這完全取決於你,但我覺得MigLayout不可或缺。

+1

'大多數Swing程序員會建議針對空佈局'== Swing GUI沒有被指定爲使用AbsoluteLayout&ComponentListener,爲什麼要以這種方式提供標準佈局管理器或今天的自定義佈局管理器,爲第3個+1。派對MigLayout – mKorbel