布局管理器

点击打开链接   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);
		
	}

}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值