急,关于函数调用的问题
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初学者,请不吝赐教,十分感谢