在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();
}
}