急,关于函数调用的问题

yang_yingfeng 2002-09-02 11:40:08
class ImageComponent extends JComponent{
Image image;
Dimension size;
public ImageComponent(Image image){
this.image=image;
MediaTracker mt=new MediaTracker(this);
mt.addImage(image,0);
try{
mt.waitForAll();
}catch(InterruptedException e){}
size=new Dimension(image.getWidth(null),image.getHeight(null));
this.setSize(size);
}
public void paint(Graphics g){
g.drawImage(image,0,0,this);
}
public Dimension getPreferredSize(){
return size;
}
}
根据以上的代码,我在主类中添加这样的方法:
JFrame f=new JFrame();
f.getContentPane().add(new JScrollPane(new ImageComponent(image)));
f.setVisible(true);
我想知道为什么在ImageComponent类的对象会调用paint方法来画图,是自动调用的么,此外,我还想问,在这里,getPreferredSize()方法是起什么作用的,如果没有这个方法,滚动条就不会出现,而这个方法我在构造函数中也没有调用呀,是自动调用的么
我是java初学者,请不吝赐教,十分感谢
...全文
43 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yang_yingfeng 2002-09-04
  • 打赏
  • 举报
回复
嗯,为什么会自动调用呢,为什么我在c语言中就没有遇到呢,今后会不会遇到更多的奇怪的东西呀
还有,我还想知道getPreferredSize()这个方法是怎样调用的,书上说,这个方法返回一个图像的大小,是提供给jscrollpane的一个说明这个对象大小的指示,我觉得,我在构造方法中没有调用这个getpreferredsize()方法呀,为什么将new ImageComponent(image)对象加入Jscrollpane中后,能使jscrollpane对象获得imageComponent对象的大小指示呢,也是imageComponent对象自动调用getPreferredSize()方法的么
我是java初学者,请不吝赐教,谢谢,十分感谢!
sunlinux 2002-09-03
  • 打赏
  • 举报
回复
“我想知道为什么在ImageComponent类的对象会调用paint方法来画图,是自动调用的么”
---》是自动调用的!
yang_yingfeng 2002-09-03
  • 打赏
  • 举报
回复
请解释得清楚一点好么,十分感谢,
bigchina001 2002-09-03
  • 打赏
  • 举报
回复
继承的缘故,你看看JComponent都有什么方法以及他又继承了什么类。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧