已有101人关注
大神们快帮我看看,我是新学的,不太懂啊!
发表在Java图书答疑 2017-12-24 《Java从入门到精通(第4版)》第13章 Swing程序设计
是否精华
版块置顶:

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(30, 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);

}

}



这段代码中的paintIcon方法使用了没有,怎么使用的。我是刚学几天不太懂啊,大神们教教我,谢谢啦!

分享到:
精彩评论 4
根号申
学分:4736 LV12
TA的每日心情
2021-07-16 23:48:46
2017-12-25
沙发
paintIcon()是接口的方法,绘制创建Icon对象时会自动调用此方法。
学学JAVA
学分:32 LV2
2017-12-26
板凳

根号申 发表于2017-12-25 09:18

paintIcon()是接口的方法,绘制创建Icon对象时会自动调用此方法。

根号申老师,为什么会自动调用它呢?比如我有一个接口,接口中有三个方法,然后我下面再写一个类,实现了接口中的三个方法,那么我创建这个类的实例的时候,这三个方法都会自动调用吗?不是只有构造方法才会自动调用吗?新手问题,麻烦老师教教我。。。。。。这地方我还是不太懂,为啥要自动调用这个paintIcon方法啊?

根号申
学分:4736 LV12
TA的每日心情
2021-07-16 23:48:46
2018-01-06
地板

学学JAVA 发表于2017-12-26 13:42

根号申老师,为什么会自动调用它呢?比如我有一个接口,接口中有三个方法,然后我下面再写一个类,实现了接口中的三个方法,那么我创建这个类的实例的时候,这三个方法都会自动调用吗?不是只有构造方法才会自动调用吗?新手问题,麻烦老师教教我。。。。。。这地方我还是不太懂,为啥要自动调用这个paintIcon方法啊?

paintIcon()方法是自动调用的,因为程序要把图片画出来,谁将图片展示在窗体中,谁就要执行绘图这个动作。你把图片放到标签里了,标签会显示图片,就需要执行Icon对象的paintIcon()方法。但JLabel是JDK提供的类,不需要你自己写,JDK已经设计好当标签展示的时候,讲需要绘制的东西通通绘制好。如果你不理解代码是怎么运行,可以使用eclipse的调试功能,让代码一层一层的跳入,看看是谁调用了paintIcon()。
学学JAVA
学分:32 LV2
2018-01-06
4L

根号申 发表于2018-01-06 10:35

paintIcon()方法是自动调用的,因为程序要把图片画出来,谁将图片展示在窗体中,谁就要执行绘图这个动作。你把图片放到标签里了,标签会显示图片,就需要执行Icon对象的paintIcon()方法。但JLabel是JDK提供的类,不需要你自己写,JDK已经设计好当标签展示的时候,讲需要绘制的东西通通绘制好。如果你不理解代码是怎么运行,可以使用eclipse的调试功能,让代码一层一层的跳入,看看是谁调用了paintIcon()。

多谢老师。

首页上一页 1 下一页尾页 4 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照