[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的(参数hgap, INT vgap): 与位置之间的距离的borderlayout初始化规定的水平和垂直.

创建使用BorderLayout的逻辑框架

登入画面使用的BorderLayout
我们使用BorderLayout的是很常见的我们的节目. 例如下面是使用的BorderLayout日志帧的示例.
使用日志框架 1 的JPanel是mainPanel中放置的BorderLayout, 这包含的mainPanel 5 用的JPanel (itemPanel) 分别在放置 5 的BorderLayout的位置为已知的. 其中, 3 ItemPanel位置WEST, 中心东再有 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的