[JavaSwing] BorderLayoutの

あなたはすでにコンテナを知っているように (JFrameのような, JPanelの, ...) それにコントロールを格納するために使用, しかし彼らは、オブジェクトのデフォルトの配置は私の希望ではない持っているか持っていません. だから我々は、このレイアウトを達成するために使用する必要があります. つまりレイアウトのヘルプは、私たちは、論理的に、美しくコンテナコントロールの手配をすることができます.

コンテンツ
BorderLayoutのコンテナを作成して設定します
BorderLayoutのログフレームを作成します。

BorderLayoutの 私たちは中にオブジェクトを配置することができます 5 主な分野 (北, 南, WEST, EAST VA CENTER) 下に示すように:
BorderLayoutの
また、我々はPAGE_STARTに置き換えることができます, PAGE_END, LINE_START, LINE_END, CENTERはまた、このようなレイアウトを取得しました.

コードはのBorderLayoutを作ります

package nguyenvanquan7826.BorderLayout;

import java.awt.BorderLayout;

import javax.swing.JButton;
import javax.swing.JFrame;

public class MyBorderLayout extends JFrame {

	public MyBorderLayout() {
		createJFrame();
	}

	private void createJFrame() {
		setTitle("My BorderLayout");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(400, 300);
		// set BorderLayout for JFrame
		setLayout(new BorderLayout());

		// add content
		add(new JButton("NORTH"), BorderLayout.NORTH);
		add(new JButton("WEST"), BorderLayout.WEST);
		add(new JButton("CENTER"), BorderLayout.CENTER);
		add(new JButton("EAST"), BorderLayout.EAST);
		add(new JButton("SOUTH"), BorderLayout.SOUTH);

		setLocationRelativeTo(null);
		setVisible(true);
	}

	public static void main(String[] args) {
		new MyBorderLayout();
	}
}

我々は持っています 2 BorderLayoutのコンストラクタメソッド:
– BorderLayoutの(): デフォルトの位置との間の距離で初期化のBorderLayoutです 0.
– BorderLayoutの(int型hgap, int型VGAP): 位置間の距離で初期化のBorderLayoutは、水平及び垂直指定しました.

BorderLayoutを使用して、ログフレームを作成します。

ログインフレーム使用のBorderLayout
私たちは、BorderLayoutのは、我々のプログラムのための非常に一般的である使用します. 例えば、以下のBorderLayoutを使用してログ・フレームの例であります.
ロギングフレームワークを使用 1 JPanelのはのBorderLayoutをMainPanelを置いています, これは含まれていMainPanel 5 とJPanelの (itemPanel) それぞれ配置 5 知られているようにBorderLayoutの位置. とどの 3 ItemPanel位置WEST, そこCENTER EASTと 1 GridLayoutの 含めて 2 ラインと 1 ポスト.

package nguyenvanquan7826.BorderLayout;

import java.awt.BorderLayout;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

public class LoginFrame extends JFrame {

	public LoginFrame() {
		createJFrame();
	}

	// create JFrame
	private void createJFrame() {
		setTitle("Login use BorderLayout");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(300, 150);
		// add main panel
		add(createMainPanel());
		// display
		setLocationRelativeTo(null);
		setVisible(true);
	}

	// create main panel
	private JPanel createMainPanel() {
		JPanel panel = new JPanel(new BorderLayout(10, 10));
		panel.add(createTitlePanel(), BorderLayout.NORTH);
		panel.add(createNamePanel(), BorderLayout.WEST);
		panel.add(createInputPanel(), BorderLayout.CENTER);
		panel.add(createStatusPanel(), BorderLayout.EAST);
		panel.add(createLoginButtonPanel(), BorderLayout.SOUTH);
		return panel;
	}

	// create title panel
	private JPanel createTitlePanel() {
		JPanel panel = new JPanel();
		panel.add(new JLabel("Login to my Blog"));
		return panel;
	}

	// create name item
	private JPanel createNamePanel() {
		JPanel panel = new JPanel(new GridLayout(2, 1, 5, 5));
		panel.add(new JLabel("User name"));
		panel.add(new JLabel("Password"));
		return panel;
	}

	// create input panel
	private JPanel createInputPanel() {
		JPanel panel = new JPanel(new GridLayout(2, 1, 5, 5));
		panel.add(new JTextField(20));
		panel.add(new JPasswordField(20));
		return panel;
	}

	// create status panel
	private JPanel createStatusPanel() {
		JPanel panel = new JPanel(new GridLayout(2, 1, 5, 5));
		panel.add(new JLabel("Wrong"));
		panel.add(new JLabel("Wrong"));
		return panel;
	}

	// create login button panel
	private JPanel createLoginButtonPanel(){
		JPanel panel = new JPanel();
		panel.add(new JButton("Login"));
		return panel;
	}

	public static void main(String[] args) {
		new LoginFrame();
	}
}

コード内の脚注は、私たちが何をすべきかの比較的明確な説明でした, 我々が使用するパスワードを入力中に、ほんの少しの注意事項 JPasswordField.

で参照してください: クラスのBorderLayout, つかいます BorderLayoutの