今天当我正在阅读我的讲义时,我不明白extends
在这方面的用途。考虑以下代码:在主要方法的类中扩展框架类
import java.net.*;
import java.awt.*;
public class QueenApl extends Frame{ // Why extends??
Image card;
public static void main(String[] args){
QueenApl f = new QueenApl();
f.show();
}
public QueenApl(){
setSize(400,400);
try{
URL u = new URL("file:/c:/windows/desktop/carn4.jpg");
card=getToolkit().getImage(u); //Why getToolkit can be used directly?
}catch(MalformedURLException e){
System.out.println("Error in URL!"); System.exit(1);
}
}
public void paint(Graphics g){
g.drawImage(card,120,50,this);
}
}
为什么main方法类扩展
Frame
类?为什么在主要方法内部不创建Frame
或作为类QueenApl
的实例变量?就像这样:Frame someobj = new Frame(argument or none);
为什么
getToolkit()
直接使用,无需附加在它前面的classname.
?是因为这个方法在类Frame
中,并且由于主方法类继承了Frame
,我们可以直接使用该方法吗?
不,不,不,不延长JFrame的,一切都如此简单,错误 – mKorbel
我试着google一下为什么延长JFrame的是用于显示图像放的JPanel到JFrame的一个很大的错误太 – caramel1995
,覆盖JPanel的PreferredSize并使用paintComponent而不是paint – mKorbel