Swing常用布局管理器对比介绍

2012-02-15 22:33:59|?次阅读|上传:wustguangh【已有?条评论】发表评论

关键词:Java, Swing, 界面设计|来源:唯设编程网

2、BorderLayout:边框布局

BorderLayout是一个布置容器的边框布局,它可以对容器组件进行安排,并调整其大小,使其符合下列五个区域:北、南、东、西、中。每个区域最多 只能包含一个组件,并通过相应的常量进行标识:NORTH、SOUTH、EAST、WEST、CENTER。当使用边框布局将一个组件添加到容器中时,要 使用这五个常量之一,例如:


    Panel p = new Panel();
    p.setLayout(new BorderLayout());
    p.add(new Button("Okay"), BorderLayout.SOUTH);

效果:

添加控件到容器的方法:

   public static void addComponentsToPane(Container pane) {
      JButton button = new JButton("Button 1 (PAGE_START)");
       pane.add(button, BorderLayout.PAGE_START);     
       button = new JButton("Button 2 (CENTER)");
       button.setPreferredSize(new Dimension(200, 100));
       pane.add(button, BorderLayout.CENTER);   
       button = new JButton("Button 3 (LINE_START)");
       pane.add(button, BorderLayout.LINE_START);     
       button = new JButton("Long-Named Button 4 (PAGE_END)");
       pane.add(button, BorderLayout.PAGE_END);      
       button = new JButton("5 (LINE_END)");
       pane.add(button, BorderLayout.LINE_END);
 
   } 

3、BoxLayout:盒子布局

BoxLayout可以将组件由上至下或由左至右依次加入当前面板,该布局模式允许垂直或水平布置多个组件的布局管理器。这些组件将不包装,因此举例来说,垂直排列的组件在重新调整框架的大小时仍然被垂直排列。
效果:

内容面板代码:

   private static void addAButton(String text, Container container) {
       JButton button = new JButton(text);
       button.setAlignmentX(Component.CENTER_ALIGNMENT);
       container.add(button);
   }
    
   private static void addButtons(Container container) {
       addAButton("Button 1", container);
       addAButton("Button 2", container);
       addAButton("Button 3", container);
       addAButton("Long-Named Button 4", container);
       addAButton("5", container);
   }
 
   //添加控件到容器
   public static void addComponentsToPane(Container pane) {
      JPanel xPanel = new JPanel();
       xPanel.setLayout(new BoxLayout(xPanel, BoxLayout.X_AXIS));
       addButtons(xPanel);
       JPanel yPanel = new JPanel();
       yPanel.setLayout(new BoxLayout(yPanel, BoxLayout.Y_AXIS));
       addButtons(yPanel);
      
       pane.add(yPanel, BorderLayout.PAGE_START);
       pane.add(xPanel, BorderLayout.PAGE_END);
 
 
   } 
发表评论0条 】
网友评论(共?条评论)..
Swing常用布局管理器对比介绍