[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的