更改后如何重新绘制图像



我有一个JPanel,其中我有一个JLabel,其中包含一个Image,如下所示:

JLabel imageLabel = new JLabel(new ImageIcon(image));

之后,我设置了imageLabelbounds,像这样:

//I want the Image to be in the middle of the screen!
imageLabel.setBounds((int) (screenSize.getWidth() / 2 - image.getWidth(null) / 2),
        (int) (screenSize.getHeight() / 2 - image.getHeight(null) / 2),
        image.getWidth(null), image.getHeight(null));

然后我将imageLabel添加到JPanel.

add(imageLabel);

现在我想通过使用KeyEvent来更改Image(KeyEvent有效(。我认为,它会更改Image(通过使用image = any other Image(,但在屏幕上不会更改。
我怎样才能实现呢?我试图将revalidate()repaint();添加到 JPanel 中。

我认为,它会更改图像(通过使用图像=任何其他图像(,

这无济于事。您所做的只是更新变量以指向不同的图像。您实际上并未将图像添加到标签中。

您需要重置标签的图标:

label.setIcon( new ImageIcon(...) );

相关内容

  • 没有找到相关文章

最新更新