J2se 有关swing布局管理的几个实例

有关swing布局管理的几个实例

1.BorderLayout:

BorderLayout只管里容器中的5个组件的排列方式,这五个组件的位置分别位于 东、南、西、北、中 方向。

 

2.BoxLayout:

 

BoxLayout 对容器中的组件进行同一方向上的平均排列,纵向或者横向。

 

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class BoxLayoutDemo {
 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);
 }
 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 Button 4", container);
  addAButton("Button 5", container);
 }
 private static void createAndShowGUI() {
  JFrame frame = new JFrame("BoxLayoutManage");
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  addComponentsToPane(frame.getContentPane());
  frame.pack();
  frame.setVisible(true);
 }
 public static void main(String[] args) {
  javax.swing.SwingUtilities.invokeLater(new Runnable() {
   public void run() {
    createAndShowGUI();
   }
  });
 }
}

3.CardLayout:

 

4.FlowLayout:

FlowLayout 是一种比较简单的布局方式,它会将所有组件排列成一行,以组件的preferredSize显示,一般情况下,如果一行显示不了所有的组件,会自动换到下 一行显示。

 

5.GridBagLayout:

 

6.GridLayout:

 

 


 



posted on 2012-02-07 11:39  绿毛肉粽  阅读(3304)  评论(0编辑  收藏  举报

导航