java组件及事件处理(7、8)--布局--FlowLayout 和 BorderLayout比较

本文对比了FlowLayout和BorderLayout这两种常用的Java布局管理器。FlowLayout按顺序排列组件,并在一行满后换行;而BorderLayout则根据东、西、南、北、中五个位置放置组件,且会调整组件大小以适应布局。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java组件及事件处理(7、8)
–FlowLayout 和 BorderLayout比较

FlowLayout 和 BorderLayout是两种不同的布局方式

1.FlowLayout 将组件逐行排列,一行满了就换到另一行
不改变组件的大小


import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Seven extends JFrame
{
	JButton jb1;
	JButton jb2;
	JButton jb3;
	JButton jb4;
	JButton jb5;
	
	JPanel jp;
	
	public Seven(String s)
	{
		super(s);
		
		FlowLayout f  = new FlowLayout();
		f.setAlignment(FlowLayout.CENTER);
		f.setHgap(50);
		f.setVgap(50);
		setLayout(f);
		
		setBounds(400, 400, 400, 400);
		
		Container conn = getContentPane();
		conn.setBackground(Color.cyan);
		
		jb1 = new JButton("赤");
		jb2 = new JButton("橙");
		jb3  = new JButton("黄");
		jb4 = new JButton("绿");
		jb5 = new JButton("青");
		
		jp = new JPanel();
		jp.add(jb1);
		jp.add(jb2);
		jp.add(jb3);
		jp.add(jb4);
		jp.add(jb5);
		
		add(jp);
		setVisible(true);
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
	}
	public static void main(String[] args)
	{
		Seven a = new Seven("FlowLayout");
	}
}

在这里插入图片描述

2.BorderLayout 是另一种布局方式
使用东西南北中的布局方式
如果不指定东西的位置,将会被放到中心位置
会改变组件的大小


import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import javax.swing.JButton;
import javax.swing.JFrame;

public class Eight  extends JFrame
{
	JButton jb1;
	JButton jb2;
	JButton jb3;
	JButton jb4;
	JButton jb5;
	
	public Eight(String s)
	{
		super(s);
		
		setLayout(new BorderLayout());
		
		setBounds(400, 400, 400, 400);
		
		Container conn = getContentPane();
		conn.setBackground(Color.cyan);
		
		jb1 = new JButton("赤");
		jb2 = new JButton("橙");
		jb3 = new JButton("黄");
		jb4 = new JButton("绿");
		jb5 = new JButton("青");
		
		add(jb1,BorderLayout.NORTH);
		add(jb2,BorderLayout.SOUTH);
		add(jb3,BorderLayout.WEST);
		add(jb4,BorderLayout.EAST);
		add(jb5,BorderLayout.CENTER);
		
		setVisible(true);
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	public static void main(String[] args)
	{
		Eight a = new Eight("BorderLayout");
	}
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值