0

我正在尝试JFrame在 Java 的 GUI 中显示图像。我已经成功地从资源文件中加载了图像,并且能够以JOptionPane. 这是通过JLabel在构造函数中使用包含图像图标来实现的。尝试将此图像添加到JPanel无时显示。

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

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

我确实注意到的一件事是,如果我在 a 中显示图像,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显示 a。它也只绘制在JOptionPane. 任何其他要绘制的图像都会被忽略。原因尚不清楚。

4

1 回答 1

1

您必须继承您的 JPanel 并覆盖redraw绘制图像的方法。

于 2013-01-10T13:14:13.970 回答