该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
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);
}
}
这个代码中DrawIcon类重写了Icon中的3个方法,并定义了2个变量。但是在主方法中只是具体化了一个DrawIcon
类的对象,并没有调用方法进行绘图。为什么在JFrame窗口中依然会出现一个使用paintIcon()方法画出的圆点
呢?难道是什么编码自动调用了paintIcon()方法么?我才开始学JAVA,对这个问题百思不得其解,希望有大神能
够为我指点迷津,谢谢!