java子类中重写了父类方法(非构造函数),在实例化子类后 会自动执行该方法吗?
我想写一个带有背景图片的JPanel,代码如下,是正确的,我的疑问是paintComponen方法为什么会自动执行,是因为他是被重写的父类方法吗?我同样写了一个test方...
我想写一个 带有背景图片的JPanel ,代码如下,是正确的,我的疑问是 paintComponen方法 为什么会自动执行,是因为他是被重写的父类方法吗?我同样写了一个test方法, 在实例化后就没有执行,请大神告诉我 我的猜想是不是对的。 自学JAVA,小白问题还请体谅。
package com.mhl.tools;
import javax.swing.*;
import java.io.*;
import java.awt.*;
public class ImagePanel extends JPanel
{
Image im;
//构造函数指定该Panel大小
public ImagePanel(Image im)
{
this.im=im;
int w=Toolkit.getDefaultToolkit().getScreenSize().width;
int h=Toolkit.getDefaultToolkit().getScreenSize().height; //为什么高 是这样的
this.setSize(w,h);
}
//画出背景
public void paintComponent(Graphics g) //override 覆盖
{
//清屏
super.paintComponent(g);
//绘制 this.getWidth() 返回当前组件的宽度
g.drawImage(im,0,0,this.getWidth(),this.getHeight(),this);
}
// public void test()
// {
// System.out.println("自动执行?");
// }
} 展开
package com.mhl.tools;
import javax.swing.*;
import java.io.*;
import java.awt.*;
public class ImagePanel extends JPanel
{
Image im;
//构造函数指定该Panel大小
public ImagePanel(Image im)
{
this.im=im;
int w=Toolkit.getDefaultToolkit().getScreenSize().width;
int h=Toolkit.getDefaultToolkit().getScreenSize().height; //为什么高 是这样的
this.setSize(w,h);
}
//画出背景
public void paintComponent(Graphics g) //override 覆盖
{
//清屏
super.paintComponent(g);
//绘制 this.getWidth() 返回当前组件的宽度
g.drawImage(im,0,0,this.getWidth(),this.getHeight(),this);
}
// public void test()
// {
// System.out.println("自动执行?");
// }
} 展开
1个回答
2013-09-04
展开全部
paintComponent
是一个事件来的,由awt/swing执行的。代码重写了父类的方法,就会执行重写的方法。
是一个事件来的,由awt/swing执行的。代码重写了父类的方法,就会执行重写的方法。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询