尝试在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对象并直接绘制图像吗?
答案 0 :(得分:4)
你不能因为这不是Swing绘画的工作方式。首先,绘画必须在EDT上进行,实现这一目标的首选方法是覆盖paintComponent(..)
方法。但是,如果使用full screen mode,可以按照您想象的方式直接绘画。
答案 1 :(得分:3)
无需自定义绘画即可显示图像。请参阅How to Use Icons。
本教程还有一节“自定义绘画”。