点击打开链接 http://zhangjunhd.blog.51cto.com/113473/128174
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任
1、布局管理器
package com.jlwang.swing;
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class LayoutDemo
{
public static void main(String[] args)
{
javax.swing.SwingUtilities.invokeLater(new Runnable(){
@Override
public void run()
{
createAndShowGUI();
}
});
}
public static void createAndShowGUI()
{
JFrame frame = new JFrame("FlowLayoutDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//FlowLayout 流式布局
// addComponentsToPane1(frame.getContentPane());
//BorderLayout 边框布局
// addComponentsToPane2(frame.getContentPane());
//BoxLayout 盒子布局
// addComponentsToPane3(frame.getContentPane());
//CardLayout 卡片布局
// addComponentsToPane4(frame.getContentPane());
//GridLayout 网格布局
// addComponentsToPane5(frame.getContentPane());
//GridBagLayout 比较复杂的组建
addComponentsToPane6(frame.getContentPane());
frame.pack();
frame.setVisible(true);
}
//FlowLayout 布局
public static void addComponentsToPane1(Container pane)
{
pane.setLayout(new FlowLayout());
pane.add(new JButton("button1"));
pane.add(new JButton("button2"));
pane.add(new JButton("button3"));
pane.add(new JButton("button4"));
pane.add(new JButton("button5"));
}
//BorderLayout 边框布局
public static void addComponentsToPane2(Container pane)
{
JButton button = new JButton("button1");
pane.add(button,BorderLayout.PAGE_START);
button = new JButton("button2");
button.setPreferredSize(new Dimension(500,500));
pane.add(button,BorderLayout.CENTER);
button = new JButton("button3");
pane.add(button, BorderLayout.LINE_START);
button = new JButton("button4");
pane.add(button,BorderLayout.PAGE_END);
button = new JButton("button5");
pane.add(button,BorderLayout.LINE_END);
}
//BoxLayout 盒子布局
public static void addComponentsToPane3(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);
}
public static void addButtons(Container container)
{
addButton("button1",container);
addButton("button2",container);
addButton("button3",container);
addButton("button4",container);
addButton("button5",container);
}
public static void addButton(String text,Container container)
{
JButton button = new JButton(text);
button.setAlignmentX(Component.CENTER_ALIGNMENT);
container.add(button);
}
//CardLayout 卡片布局
public static void addComponentsToPane4(Container panel)
{
final JPanel contentPanel = new JPanel();
JPanel controlPanel = new JPanel();
final CardLayout cardLayout = new CardLayout();
panel.setLayout(new BorderLayout());
panel.add(contentPanel,BorderLayout.PAGE_START);
panel.add(controlPanel,BorderLayout.PAGE_END);
controlPanel.setLayout(new FlowLayout());
JButton[] buttons = new JButton[10];
for (int i = 0; i < 10; i++)
{
buttons[i] = new JButton("No." + i);
buttons[i].setPreferredSize(new Dimension(500,500));
contentPanel.add(buttons[i]);
}
contentPanel.setLayout(cardLayout);
JButton nextButton = new JButton("next");
nextButton.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent arg0)
{
cardLayout.next(contentPanel);
}
});
controlPanel.add(nextButton);
}
//GridLayout 网格布局
public static void addComponentsToPane5(Container panel)
{
JButton[] buttons = new JButton[9];
panel.setLayout(new GridLayout(3,3));
for (int i = 0; i < buttons.length; i++)
{
buttons[i] = new JButton(i + "");
buttons[i].setPreferredSize(new Dimension(200,200));
panel.add(buttons[i]);
}
}
//GridBagLayout 比较复杂的组建
public static void addComponentsToPane6(Container panel)
{
JButton button;
panel.setLayout(new GridBagLayout());
GridBagConstraints gridBagConstraints = new GridBagConstraints();
button = new JButton("button1");
gridBagConstraints.fill = GridBagConstraints.HORIZONTAL;
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
panel.add(button,gridBagConstraints);
button = new JButton("button2");
gridBagConstraints.fill = GridBagConstraints.HORIZONTAL;
gridBagConstraints.weightx = 0.5;
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 0;
panel.add(button,gridBagConstraints);
button = new JButton("button3");
gridBagConstraints.fill = GridBagConstraints.HORIZONTAL;
gridBagConstraints.weightx = 0.5;
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 0;
panel.add(button, gridBagConstraints);
button = new JButton("button4");
gridBagConstraints.fill = GridBagConstraints.HORIZONTAL;
gridBagConstraints.ipady = 40;
gridBagConstraints.gridwidth = 3;
gridBagConstraints.weightx = 0.0;
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
panel.add(button, gridBagConstraints);
button = new JButton("button5");
gridBagConstraints.fill = GridBagConstraints.HORIZONTAL;
gridBagConstraints.ipady = 0;
gridBagConstraints.gridx = 0;
gridBagConstraints.insets = new Insets(50,0,0,0);
gridBagConstraints.anchor = GridBagConstraints.PAGE_END;
gridBagConstraints.gridy = 2;
gridBagConstraints.gridx = 2;
panel.add(button, gridBagConstraints);
}
}