Java Swing (2)21-6-2

本文介绍了Java Swing中的图片图标创建,包括使用ImageIcon类的方法。接着,详细讲解了五种常用的布局管理器:绝对布局、流布局、边界布局、网格布局。此外,还涵盖了常用组件如JPanel、JScrollPanel、按钮、单选框、复选框、列表组件以及文本组件的使用,并探讨了动作监听事件和焦点监听事件的应用。
摘要由CSDN通过智能技术生成

使用图片图标

Swing利用java.swing.ImageIcon类根据现有图片创建图标,ImageIcon类实现了Icon接口,同时Java支持多种图片格式

public ImageIcon();
//构建一个通用的ImageIcon对象,当需要设置图片时 再使用ImageIcon对象调用setImage(Image image)来操作
public ImageIcon(Image image);//直接从图片源创建图标
public ImageIcon(Image image,String description);//从图片源创建图标,并为这个图标添加简短的描述
//描述并不会在图片上显示,可以使用getDescription()方法来获取这个描述
public ImageIcon(URL url);//利用位于计算机网络上的图像文件创建图标

例(java.lang.Class类中的getResource()方法可以获取资源文件的URL路径。例子中该方法的参数是imageButton.jpg,这个路径是相对于tupiantubiao类文件的,所以可以将图片文件和类文件放在同一个文件夹中)

public class tupiantubiao extends JFrame{
   
	public tupiantubiao(){
   
		setTitle("悟空");
		Container container =getContentPane();
		JLabel jl=new JLabel("这是一个可爱的悟空",JLabel.CENTER);
		URL url=tupiantubiao.class.getResource("imageButton.jpg");
		Icon icon =new ImageIcon(url);
		jl.setIcon(icon);//	为标签设置图片
		jl.setHorizontalAlignment(SwingConstants.CENTER);//设置文字放置在标签中间
		jl.setOpaque(true);//设置标签为不透明状态
		container.add(jl);
		setSize(250,100);
		setVisible(true);
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	}
		public static void main(String[] args) {
   
		// TODO Auto-generated method stub
		new tupiantubiao();
	}

}

5.常用布局管理器

绝对布局

步骤:

Container.setLayout(null);//取消布局管理器
Component.setBounds();//设置每个组件的大小与位置

例:

public class demo extends JFrame{
   
	JButton jb1 =new JButton("这是按钮1");
	JButton jb2 =new JButton("这是按钮2");
	public demo() {
   
		Container c=getContentPane();
		setLayout(null);
		setBounds(0,0,200,150);
		jb1.setBounds(10,30,80,30);
		jb2.setBounds(60,70,100,20);
		c.add(jb1);
		c.add(jb2);
		setTitle("这是一个绝对布局窗口");
		setSize(300,200);
		setVisible(true);
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		}
		public static void main(String[]args) {
   
		new demo();
		}
		}

流布局管理器

像“流”一样从左到右摆放组件,直到占据这一行的所有空间
如果改变整个窗体的大小,其中组件的摆放位置也会相应地发生变化

public FlowLayout();
public FlowLayout(int alignment);
public FlowLayout(int alignment,int horizGap,int vwertGap);
//alignment设为0时,每一行的组件将被指定向左对其,为1时,居中。为2时,向右对齐
//horiGap,vertGap这两个参数分别以像素为单位指定组件之间的水平间隔和垂直间隔

边界布局管理器

BorderLayout.NORTH 在容器添加组件时,组件置于顶端
BorderLayout.SOUTH 在容器添加组件时,组件置于底端
BorderLayout.EAST 在容器添加组件时,组件置于右端
BorderLayout.WEST 在容器添加组件时,组件置于左端
BorderLayout.CENTER 在容器添加组件时,组件置于中间开始填充,直到与其他组件边界连接
public class bianjiebuju extends JFrame{
   
	String[] border={
    //定义组件摆放位置数组
			BorderLayout.CENTER,BorderLayout.NORTH,BorderLayout.SOUTH,BorderLayout.
			WEST,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值