GUI编程(lcon、lmagelcon标签、在label存放图标及图片)


在label标签中存放图标


import java.util.Scanner;
//主窗口 lable:标签,在lable中放置一个图标和图片 //ICON:图标,ICON是一个接口,里面有三个方法,并且我们是需要重写的,第一个方法是paintIcon():画一个图标,getIconWidth():获取图标的宽,getIconHeight()获取图标的高 //开始:因为图标是一个接口,所以我们这个类要实现他的接口才会,那图标肯定是要写窗体内的,所以我们也要创建窗体 public class IconDem extends JFrame implements Icon { private int Width;// private int height;////无参构造 public IconDem(){ } //使用构造器传值,这样可以让下面的图标方法获取到值 public IconDem(int Width,int height){ this.Width=Width; this.height=height; } //初始化窗体 public void init(){ IconDem iconDemo= new IconDem(15,15);//设置图标的宽高 //获取放在标签上,也可以放在按钮上等 JLable lable=new JLable("icontest",iconDemo,SwingConstants.CENTER);//创建标签,并且命名标题,然后设置标题的位置放在图标的正中间 //创建容器,并把标签放到容器中 Container container=getContentPane(); container.add(lable);//添加标签,这样就可以在窗体中显示了 this.setVisible(true);//显示窗口 this.setDefautCloseOperation(WindowConstants.EXIT_NO_CLOSE);//设置默认关闭窗口 } public static void main(String[] args) { new IconDem().init(); } //为了我们这几个方法能正常使用,那我们要创建两个,宽高的成员属性用来调用,因为方法需要所以我们才要创建 //画图标的方法 public void paintIcon(Component c,Graphics g,int x,int y){ //通过画笔调用画图方法(fillOval),然后传坐标及宽高 g.fillOval(x,y,Width,height);//Width,height就是外部的成员变量 } //获取图标的宽 public int getIconWidth(){ //当构造器传入值时,我们可以获取到 return this.Width; } //获取图标的高 public int getIconHeight(){ //当构造器传入值时,我们可以获取到 return this.height; } }


在label标签中存放图片

import java.util.Scanner;
public class IconIconDem extends JFrame implements Icon { public IconIconDem(){ //创建标签,并命名,之后把图片放在标签中 JLable label=new JLable("IconIconDem"); //获取图片的地址 URL url= IconIconDem.class.getResource("tx.jpg");//获得当前class的类,下面同级资源名为tx.jpg文件,所以要像这样获取文件的话,就把文件放在和IconIconDem一个包内,才可以用这个方法获取 //new一个 IconIcon官方的类,然后就可以把图片传到IconIcon中,然后Jlabel标签就可以用,这个类的对象来设置图片了 IconIcon imconIcon= new IconIcon(url); //1.把图片传到标签中,然后我们就可以使用标签去设置图片了,setIcon:设置图片 label.setIcon(imconIcon); //2.然后用标签对象去设置图片居中 label.setHorizontalAlignment(SwingConstants.CENTER); //获得容器 Container container=getContentPane(); //把标签添加到容器中 container.add(label); //设置容器可见 setVisible(true); //设置默认关闭窗口 setDefautCloseOperation(WindowConstants.EXIT_NO_CLOSE); //设置坐标及大小 setBounds(100,100,400,400); } public static void main(String[] args) { new IconIconDem(); } }

相关