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()は描画されません
g.drawImage(img,0,0,this);
へ
ウィンドウのサイズを変更して再描画します。あなたが最初にウィンドウを描画すると、私の野生の推測は、画像がまだロードされていないことになります。 – ZeissS
@ZeissSすなわち 'Toolkit.getDefaultToolkit()。createImage(" 1.jpg ");'このメソッドは画像をフルに読み込まなくても返しますか? – eXXXXXXXXXXX2
はい、そうです。 – ZeissS