logo

BorderLayout (レイアウトマネージャー)

Java レイアウトマネージャー

LayoutManager は、コンポーネントを特定の方法で配置するために使用されます。の Java レイアウトマネージャー これにより、GUI フォーム内のコンポーネントの位置とサイズを制御することが容易になります。 LayoutManager は、レイアウト マネージャーのすべてのクラスによって実装されるインターフェイスです。レイアウト マネージャーを表す次のクラスがあります。

  1. java.awt.BorderLayout
  2. java.awt.FlowLayout
  3. java.awt.GridLayout
  4. java.awt.CardLayout
  5. java.awt.GridBagLayout
  6. javax.swing.BoxLayout
  7. javax.swing.GroupLayout
  8. javax.swing.ScrollPaneLayout
  9. javax.swing.SpringLayout など

Java ボーダーレイアウト

BorderLayout は、コンポーネントを北、南、東、西、中央の 5 つの領域に配置するために使用されます。各領域 (エリア) には 1 つのコンポーネントのみを含めることができます。これは、フレームまたはウィンドウのデフォルトのレイアウトです。 BorderLayout は、各領域に 5 つの定数を提供します。

    public static Final int NORTH public static Final int SOUTH パブリック静的最終整数EAST パブリック静的最終整数 WEST パブリック静的最終整数センター

BorderLayout クラスのコンストラクター:

    BorderLayout():境界レイアウトを作成しますが、コンポーネント間に隙間はありません。BorderLayout(int hgap, int vgap):コンポーネント間に指定された水平方向と垂直方向のギャップを持つボーダー レイアウトを作成します。

BorderLayout クラスの例: BorderLayout() コンストラクターの使用

ファイル名: ボーダー.java

 import java.awt.*; import javax.swing.*; public class Border { JFrame f; Border() { f = new JFrame(); // creating buttons JButton b1 = new JButton('NORTH');; // the button will be labeled as NORTH JButton b2 = new JButton('SOUTH');; // the button will be labeled as SOUTH JButton b3 = new JButton('EAST');; // the button will be labeled as EAST JButton b4 = new JButton('WEST');; // the button will be labeled as WEST JButton b5 = new JButton('CENTER');; // the button will be labeled as CENTER f.add(b1, BorderLayout.NORTH); // b1 will be placed in the North Direction f.add(b2, BorderLayout.SOUTH); // b2 will be placed in the South Direction f.add(b3, BorderLayout.EAST); // b2 will be placed in the East Direction f.add(b4, BorderLayout.WEST); // b2 will be placed in the West Direction f.add(b5, BorderLayout.CENTER); // b2 will be placed in the Center f.setSize(300, 300); f.setVisible(true); } public static void main(String[] args) { new Border(); } } 

出力:

BorderLayout クラスこの例をダウンロードする

BorderLayout クラスの例: BorderLayout(int hgap, int vgap) コンストラクターの使用

次の例では、パラメーター化されたコンストラクター BorderLayout(int hgap, int gap) を使用して、ボタン間に水平方向と垂直方向のギャップを挿入します。

ファイル名: BorderLayoutExample.java

 // import statement import java.awt.*; import javax.swing.*; public class BorderLayoutExample { JFrame jframe; // constructor BorderLayoutExample() { // creating a Frame jframe = new JFrame(); // create buttons JButton btn1 = new JButton('NORTH'); JButton btn2 = new JButton('SOUTH'); JButton btn3 = new JButton('EAST'); JButton btn4 = new JButton('WEST'); JButton btn5 = new JButton('CENTER'); // creating an object of the BorderLayout class using // the parameterized constructor where the horizontal gap is 20 // and vertical gap is 15. The gap will be evident when buttons are placed // in the frame jframe.setLayout(new BorderLayout(20, 15)); jframe.add(btn1, BorderLayout.NORTH); jframe.add(btn2, BorderLayout.SOUTH); jframe.add(btn3, BorderLayout.EAST); jframe.add(btn4, BorderLayout.WEST); jframe.add(btn5, BorderLayout.CENTER); jframe.setSize(300,300); jframe.setVisible(true); } // main method public static void main(String argvs[]) { new BorderLayoutExample(); } } 

出力:

BorderLayout クラス

Java BorderLayout: 領域を指定しない場合

JFrame クラスの add() メソッドは、領域を指定しなくても機能します。このような場合、追加された最新のコンポーネントのみがフレームに表示され、以前に追加されたコンポーネントはすべて破棄されます。最新のコンポーネントが全域をカバーします。次の例も同じことを示しています。

ファイル名: BorderLayoutWithoutRegionExample.java

 // import statements import java.awt.*; import javax.swing.*; public class BorderLayoutWithoutRegionExample { JFrame jframe; // constructor BorderLayoutWithoutRegionExample() { jframe = new JFrame(); JButton btn1 = new JButton('NORTH'); JButton btn2 = new JButton('SOUTH'); JButton btn3 = new JButton('EAST'); JButton btn4 = new JButton('WEST'); JButton btn5 = new JButton('CENTER'); // horizontal gap is 7, and the vertical gap is 7 // Since region is not specified, the gaps are of no use jframe.setLayout(new BorderLayout(7, 7)); // each button covers the whole area // however, the btn5 is the latest button // that is added to the frame; therefore, btn5 // is shown jframe.add(btn1); jframe.add(btn2); jframe.add(btn3); jframe.add(btn4); jframe.add(btn5); jframe.setSize(300,300); jframe.setVisible(true); } // main method public static void main(String argvs[]) { new BorderLayoutWithoutRegionExample(); } } 

出力:

BorderLayout クラス