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: