在Java GUI中绘制图像

时间:2013-01-10 12:06:55

标签: java image swing user-interface

我正在尝试用Java中的JFrame GUI显示图像。我已成功加载资源文件中的图像,并能够在JOptionPane中显示图像。这是使用构造函数中包含图像图标的JLabel实现的。尝试将此图像添加到JPanel时,不会显示任何内容。

JLabel imgLabel1 = new JLabel(new ImageIcon(tsr.getTileImage(1,1)),JLabel.CENTER);
jpnDisplay.add(imgLabel1);

tsr是我从tileset获取子图像的自定义代码。返回的图片类型为BufferedImage

我注意到的一件事是,如果我在JOptionPane中显示图像,然后将其添加到显示图像的JPanel。我不确定为什么会这样。

JLabel imgLabel1 = new JLabel(new ImageIcon(tsr.getTileImage(1,1)),JLabel.CENTER);
JOptionPane.showMessageDialog(null, imgLabel1,"Label",-1);
jpnDisplay.add(imgLabel1);`enter code here

- 编辑 -

在玩完我的代码之后,我发现我的问题不在于我尝试显示图片的方式,但由于某种原因我的JFrame没有重新绘制,除非JOptionPane是显示JFrame之前显示的内容。它也只绘制JOptionPane中显示的相同实例。要绘制的任何其他图像都会被忽略。原因尚不清楚。

1 个答案:

答案 0 :(得分:1)

您必须对JPanel进行子类化并覆盖redraw方法以绘制图像。