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 方法。为什么非要那样做,就不能直接抓取frame关联的Graphics对象,直接画图吗?

4

2 回答 2

4

你不能,因为这不是 Swing 绘画的工作方式。一方面,绘画必须在EDT上进行,实现这一点的首选方法是覆盖该paintComponent(..)方法。但是,如果您使用全屏模式,则可以按照您想象的方式直接绘画。

于 2011-05-25T14:55:04.970 回答
3

无需自定义绘画即可显示图像。请参阅如何使用图标

本教程还有一个关于“自定义绘画”的部分。

于 2011-05-26T00:59:39.940 回答