[JavaSwing] BorderLayout的
正如你所知道的集装箱 (作为JFrame中, 的JPanel, ...) 用于存储的控制其, 然而,他们可能会或可能不会默认对象的安排是不是我们所期望的. 因此,我们需要利用这样做布局. 换句话说,布局帮助下,我们可以安排容器以合理的方式和美丽.
内容
创建和设置BorderLayout的容器
创建BorderLayout的逻辑框架
BorderLayout的 允许我们安排的对象 5 主要领域 (北, 南, WEST, EAST VA CENTER) 如下所示:
此外,我们可以用PAGE_START更换, PAGE_END, LINE_START, LINE_END, CENTER也得到这样的布局.
代码做出的BorderLayout
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | 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 职位.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | 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的