[JavaSwing] BorderLayout的
正如你所知道的集装箱 (作为JFrame中, 的JPanel, ...) 用于存储的控制其, 然而,他们可能会或可能不会默认对象的安排是不是我们所期望的. 因此,我们需要利用这样做布局. 换句话说,布局帮助下,我们可以安排容器以合理的方式和美丽.
内容
创建和设置BorderLayout的容器
创建BorderLayout的逻辑框架
BorderLayout的 允许我们安排的对象 5 主要领域 (北, 南, WEST, EAST VA CENTER) 如下所示:

此外,我们可以用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日志帧的示例.
使用日志框架 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的



0 在回应 [JavaSwing] BorderLayout的