图标的使用
package com.lzw;
import java.awt.*;
import javax.swing.*;
public class DrawIcon implements Icon { // 实现Icon接口
private int width; // 声明图标的宽
private int height; // 声明图标的长
public int getIconHeight() { // 实现getIconHeight()方法
return this.height;
}
public int getIconWidth() { // 实现getIconWidth()方法
return this.width;
}
public DrawIcon(int width, int height) { // 定义构造方法
this.width = width;
this.height = height;
}
// 实现paintIcon()方法
public void paintIcon(Component arg0, Graphics arg1, int x, int y) {
arg1.fillOval(x, y, width, height); // 绘制一个圆形
}
public static void main(String[] args) {
DrawIcon icon = new DrawIcon(15, 15);
// 创建一个标签,并设置标签上的文字在标签正中间
JLabel j = new JLabel("测试", icon, SwingConstants.CENTER);
JFrame jf = new JFrame(); // 创建一个JFrame窗口
Container c = jf.getContentPane();
c.add(j);
jf.setSize(100,100);
jf.setVisible(true);
jf.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
}
getIconHeight()用于获得长
getIconWidth() 用于获得宽
paintIcon(Component arg0, Graphics arg1, int x, int y) 在指定的坐标画图
图片图标
package com.lzw;
import java.awt.*;
import java.net.*;
import javax.swing.*;
public class MyImageIcon extends JFrame {
private static final long serialVersionUID = 1L;
public MyImageIcon() {
Container container = getContentPane();
// 创建一个标签
JLabel jl = new JLabel("这是一个JFrame窗体", JLabel.CENTER);
// 获取图片所在的URL
URL url = MyImageIcon.class.getResource("imageButton.jpg");
Icon icon = new ImageIcon(url); // 实例化Icon对象
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[]) {
new MyImageIcon(); // 实例化MyImageIcon对象
}
}
ImageIcon ():创建一个通用的ImageIcon 对象,真正需要设置图片的时候在进行setImage(Image image)方法
ImageIcon (Image image):直接从图片源创建图标
ImageIcon (Image image,String descrip):从图片源创建图标,并为这个图标添加简短的描述
ImageIcon (URL url):利用位于计算机网络上的图像创建图标
转载请注明原文地址: https://ju.6miu.com/read-24660.html