java类实现接口后,重写了接口中的方法,在创建新的类对象后,会自动运行重写后的接口中的方法吗? 5
packagecom.lzw;importjava.awt.*;importjavax.swing.*;publicclassDrawIconimplementsIcon...
package com.lzw;
import java.awt.*;
import javax.swing.*;
public class DrawIcon implements 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; }
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();
Container c = jf.getContentPane();
c.add(j);
jf.setSize(1000,1000);
jf.setVisible(true);
jf.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
}
程序中没有运行icon.paintIcon();方法的语句,但是后面”JLabel j = new JLabel("测试", icon, SwingConstants.CENTER);“中,直接调用了icon,而且程序结果也直接绘出了圆形图标,那么这里是在实例化DrawIcon类对象icon之后,系统默认自动调用并且运行了类中重写的接口中paintIcon();方法吗?有点理解不了这块呀,我是java新手,若是知识有漏洞,希望大神们可以批评指正啊,小弟不胜感激! 展开
import java.awt.*;
import javax.swing.*;
public class DrawIcon implements 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; }
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();
Container c = jf.getContentPane();
c.add(j);
jf.setSize(1000,1000);
jf.setVisible(true);
jf.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
}
程序中没有运行icon.paintIcon();方法的语句,但是后面”JLabel j = new JLabel("测试", icon, SwingConstants.CENTER);“中,直接调用了icon,而且程序结果也直接绘出了圆形图标,那么这里是在实例化DrawIcon类对象icon之后,系统默认自动调用并且运行了类中重写的接口中paintIcon();方法吗?有点理解不了这块呀,我是java新手,若是知识有漏洞,希望大神们可以批评指正啊,小弟不胜感激! 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询