picLabelという名前のJLabelでいくつかの画像を表示する必要がある小さなJavaアプリケーションを作成しています。
写真オブジェクトのJListがあります(データベースから読み取られた画像のInputStreamが含まれています)。
JListValueChangedイベントリスナーのコードは次のとおりです。
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は以前の状態のままになります。
私は何かが足りないのですか?