0

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

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

之后,我设置 的boundsimageLabel如下所示:

//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));

然后我imageLabelJPanel.

add(imageLabel);

现在我想Image通过使用KeyEventKeyEvent作品)来改变 , 。我认为,它改变了Image(通过使用image = any other Image),但它不会在屏幕上改变。
我怎样才能做到这一点?我试图将revalidate()和添加repaint();到 JPanel。

4

1 回答 1

0

我认为,它改变了图像(通过使用图像=任何其他图像),

那没有任何作用。您所做的只是更新变量以指向不同的图像。您实际上并没有将图像添加到标签中。

您需要重置标签的图标:

label.setIcon( new ImageIcon(...) );
于 2018-01-23T18:22:11.287 回答