1

JavaでWindowsプログラミングを学ぼうとしていて、フレームに画像を表示したい.ここに問題のコードがあります:

public static void main(String[] args) throws IOException {
        JFrame frame = new JFrame("hello world");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(200,200);
        Graphics graph = frame.getGraphics();

        BufferedImage image = ImageIO.read(new File("data/image.jpg"));
        graph.drawImage(image, 0,0,frame);
        frame.pack();
        frame.setVisible(true);

    }

Component クラスをサブクラス化し、paint メソッドで Graphics.DrawImage メソッドを呼び出す成功例をいくつか見てきました。フレームに関連付けられた Graphics オブジェクトを取得して、画像を直接描画することはできませんか?

4

2 に答える 2

4

それがSwingペインティングの仕組みではないため、できません。一つには、ペイントはEDTで行われる必要があり、これを実現するための好ましい方法はpaintComponent(..)メソッドをオーバーライドすることです。ただし、フルスクリーンモードを使用すれば、想像どおりの直接ペイントが可能です。

于 2011-05-25T14:55:04.970 に答える
3

画像を表示するためのカスタム ペイントは必要ありません。アイコンの使用方法 を参照してください。

チュートリアルには、「カスタム ペインティング」に関するセクションもあります。

于 2011-05-26T00:59:39.940 に答える