我正在制作一个小型 Java 应用程序,它必须在名为 picLabel 的 JLabel 中显示一些图像。
我有一个照片对象的 JList(包含从数据库读取的图像的 InputStream)。
下面是 JList ValueChanged 事件监听器的代码:
private void photoListValueChanged(javax.swing.event.ListSelectionEvent evt) {
if (evt.getValueIsAdjusting() == false && photoList.getSelectedIndex() != -1) {
photo = (Photo) photoList.getSelectedValue();
BufferedImage image = ImageIO.read(photo.getContent()) ;
if(image != null) {
picLabel.setIcon(new ImageIcon(image));
}
}
它在我第一次从列表中选择每个元素时完美运行。但是,如果我再次选择一个已经被选中的元素(并且图像已经显示),它根本不会显示图像,而让 JLabel 保持以前的状态。
我错过了什么吗?