2012-05-15 42 views
1

我想安排如圖所示的組件。我可以通過使用gridbaglayout來做到這一點,但我想用borderlayout來做到這一點。我嘗試過,但無法達到我想要的。所以請在這裏指導我。 這裏的黑色矩形像的JPanel,按鈕等swt或swing中的borderlayout

enter image description here

回答

4

如果你只想用BorderLayout來做,你需要使用2個BorderLayout。如果你不能使用2個佈局,那麼你會被困在GridBagLayout中。 這就是我講的一個示範:

import java.awt.BorderLayout; 

import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.SwingUtilities; 

public class Test { 

    protected void initUI() { 
     JFrame frame = new JFrame("test"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     JPanel panel = new JPanel(new BorderLayout()); 
     JPanel panel2 = new JPanel(new BorderLayout()); 
     panel2.add(new JButton("NORTH"), BorderLayout.NORTH); 
     panel2.add(new JButton("CENTER")); 
     panel.add(panel2); 
     panel.add(new JButton("SOUTH"), BorderLayout.SOUTH); 
     panel.add(new JButton("EAST"), BorderLayout.EAST); 
     frame.add(panel); 
     frame.pack(); 
     frame.setVisible(true); 
    } 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 

      @Override 
      public void run() { 
       new Test().initUI(); 
      } 
     }); 
    } 
} 

Example

+0

簡單而優秀+1 – mKorbel

+0

@Guillaume Polet:感謝這個不錯的例子。 –

3

邊境佈局的構成不工作的方式。這是邊境佈置示意圖:

enter image description here

您將無法在東區域的佈局放入頂部右上角 - 北總會浮起的右手邊。

編輯:顯示自從我使用Swing或AWT以來已經過了多長時間 - 當我做時,它是東,北,西,南和中心。

+0

東,北,西,南,中心仍然有效 –

+2

@a_horse_with_no_name:它們是有效的,儘管[Java文檔(HTTP ://docs.oracle.com/javase/tutorial/uiswing/layout/border.html)現在不鼓勵它們在Java 1.4以後的使用,聲明「在JDK版本1.4之前,各個領域的首選名稱是不同的,從點(例如,頂部區域的BorderLayout.NORTH)轉換爲我們例子中使用的常量的字典版本。我們的例子使用的常量是首選的,因爲它們是標準的並且使程序能夠適應具有不同方向的語言。「 –