プロが教えるわが家の防犯対策術!

お世話になっています。
Java言語で、ファイルから読み出した画像ファイルをJFrameに描画したいのですが、
上手く描画できません。

private static BufferedImage Bi;


public void paintComponent(Graphics g){【B】
System.out.println("びょうがしょり☆");
Graphics2D g2 = (Graphics2D)g;
if (Bi != null){
g2.drawImage(Bi, 0, 0, (ImageObserver) this);
}
System.out.println(Bi);
}

public static void main(String[] arguments){
TypeModel aModel = new TypeModel();
TypeController aController = new TypeController();
TypeView aView = new TypeView(aModel, aController);
Bi = Input.fileChooser();
System.out.println(Bi);【A】
open(aView, new Dimension(500,700));
}

private static void open(TypeView aView, Dimension aDimension){
JFrame aWindow = new JFrame("typist");
aWindow.getContentPane().add(aView);
aWindow.setMinimumSize(aDimension);
aWindow.setMaximumSize(aDimension);
aWindow.setResizable(false);
aWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
aWindow.addNotify();
int titleBarHeight = aWindow.getInsets().top;
aWindow.setSize(aDimension.width, aDimension.height);
aWindow.setLocation(50, 70);
aWindow.setVisible(true);
}


【A】の位置では画像の情報は確保されているようです。
【B】のpaintComponentは呼び出されていないようです(びょうがしょり☆が表示されない)

これは何がいけないのでしょうか?
申し訳ありませんが、ご教授お願いします。
よろしくお願いいたします。

A 回答 (1件)

JFrame aWindowの寿命がopenメソッドに限定されています。

BufferedImageの下で定義なされば宜しいでしょう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!