在Java GUI中绘制图像



我试图在Java的JFrame GUI中显示图像。我已经成功地从资源文件加载了图像,并能够在JOptionPane中显示图像。这是通过在构造函数中包含一个图像图标的JLabel来实现的。当尝试将此图像添加到JPanel时,没有显示任何内容。

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

tsr是我的自定义代码,用于从标题集获取子图像。返回的图像类型为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没有重新绘制,除非在JFrame显示之前显示JOptionPane。它也只绘制JOptionPane中显示的相同实例。任何其他要绘制的图像都会被忽略。原因尚不清楚。

您必须子类化您的JPanel并覆盖redraw方法来绘制您的图像。

相关内容

  • 没有找到相关文章

最新更新