import java.awt.*;
import javax.swing.*;
public class Main
{
JFrame jf;
Main()
{
jf=new JFrame();
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.add(new MyCanvas());
jf.pack();
jf.setVisible(true);
}
public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable()
{
@Override
public void run()
{
new Main();
}
});
}
}
class MyCanvas extends JComponent
{
Image img;
MyCanvas()
{
setPreferredSize(new Dimension(200,200));
img=Toolkit.getDefaultToolkit().createImage("1.jpg");
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawImage(img,0,0,null);
}
}
我想用自己的paintComponent
方法獲得畫布,但有時候我會看到沒有圖像的空窗口。我需要調整窗口的大小才能看到此圖像。什麼是問題?爲什麼drawImage有時不畫?drawImage()不繪製
調整窗口的大小來發出重繪。我瘋狂的猜測是,當您最初繪製窗口時,圖像尚未加載。 – ZeissS 2012-02-25 15:12:34
@ZeissS即'Toolkit.getDefaultToolkit()。createImage(「1.jpg」);'這種方法即使沒有滿載圖像也會返回? – eXXXXXXXXXXX2 2012-02-25 15:17:03
是的,情況就是這樣。 – ZeissS 2012-02-26 10:28:15