我有一个JPanel
,其中我有一个JLabel
,其中包含一个Image
,如下所示:
JLabel imageLabel = new JLabel(new ImageIcon(image));
之后,我设置了imageLabel
的bounds
,像这样:
//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(...) );