[JavaSwing] JPanelの

コンテンツ
JPanelを作成します。
レイアウトを設定し、ボーダー

開口部導入後 JFrameの との導入 JLabelの, JButtonのJTextFieldを 多分あなたは、Java Swingでインターフェースを作成する方法に精通している. 頻繁に使用されるオブジェクトの導入に先立ち, 私は、我々はそれがコンテナにある非常に重要を学ぶべきだと思う (コンテナ, ホルダー) と置く レイアウト (レイアウト) コンテナ内のそれ.

JPanelの
JPanelはコンテナです (コンテナ) それは同様のオブジェクトを含めるために使用JFrameのそれではない 1 JFrameの. 理解しやすく、あなたが私たちの家を想像することができます 1 JFrameの, 残りの寝室, リビングルーム, JPanelのあるダイニングルーム, すなわちJFrameのにJPanelを含んでいる, 各JPanelの内のオブジェクト、あるいは他のJPanelを含むことができる.

JPanelを作成します。

我々は持っています 2 あるコンストラクタまたは使用のJPanel:
– JPanelの(): 作る 1 デフォルトのレイアウトはFlowLayoutのとJPanelのです.
– JPanelの(LayoutManagerのレイアウト): 作る 1 指定されたレイアウトでのJPanel.

例 1: 作る 1 JFrameの含む 2 JPanelの, 1 含むJPanelの JLabelの, 1 含むJPanelの 2 JButtonのは、JLabelを追加または削除できます.

package nguyenvanquan7826.JPanel;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

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

public class CreateJPanel extends JFrame implements ActionListener {
	private int numlabel = 0; // number JLabel in panel
	JPanel panel1, panel2;

	public CreateJPanel() {
		createJFrame();
	}

	// create JFrame
	private void createJFrame() {
		setTitle("Create JPanel");
		setLayout(new GridLayout(2, 1, 5, 5));
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		createContent();

		pack();
		setLocationRelativeTo(null);
		setVisible(true);
	}

	private void createContent() {
		// create panel1 with layout default is FlowLayout
		panel1 = new JPanel();
		// add a label into panel1
		addJLabel(panel1);

		// create panel2 with GridLayout
		panel2 = new JPanel(new GridLayout(1, 2, 5, 5));
		panel2.add(createJButton("Add a JLabel"));
		panel2.add(createJButton("Remove all JLabel"));

		// add panel1 and panel2 into JFrame
		add(panel1);
		add(panel2);
	}

	// add JLabel to panel and repaint
	private void addJLabel(JPanel panel) {
		panel.add(new JLabel("JLabel" + (++numlabel)));
		panel.validate();
		panel.repaint();
	}

	// remove all JLabel and repaint JPanel
	private void removeAllJLabel(JPanel panel) {
		panel.removeAll();
		panel.validate();
		panel.repaint();
		numlabel = 0;
	}

	// create a JButton
	private JButton createJButton(String buttonName) {
		JButton btn = new JButton(buttonName);
		btn.addActionListener(this);
		return btn;
	}

	@Override
	public void actionPerformed(ActionEvent evt) {
		String command = evt.getActionCommand();
		if (command == "Add a JLabel") {
			addJLabel(panel1);
			System.out.println("add" + panel1.getComponentCount());
		}
		if (command == "Remove all JLabel") {
			removeAllJLabel(panel1);
		}
	}

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

JPanelの作成
この例では、作成 2 JPanelの, パネル1は、デフォルトでは初期化されます, デフォルトのレイアウトでそれに渡さないパラメータはFlowLayoutのではない (シーケンス内のオブジェクトのレイアウト). panel2は指定されたレイアウトで初期化さGridLayoutのです (各セル内のオブジェクトの配置が等しい).
また、に注意を払う 2 顎 addJLabel(JPanelのパネル)removeAllJLabel(JPanelのパネル), addメソッドを使用した後, またはのJPanelののremoveAll, それを変更したい (もっとJLabelの, または全体JLabelを削除する) 示す, JFrameの上の更新は、我々は呼び出す必要が 2 方法を検証() と再描画() JPanelのできるオブジェクトをレンダリングするために. 我々はまたして同じことを行うことができます JFrameの.

JPanelのためのレイアウトとボーダーを設定します

配置するには レイアウトボーダー 我々が使用するメソッドのJPanelのsetLayoutとsetBorder.

参照する: クラスのJPanel, パネルを使用してください