亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 JTable 鼠標單擊事件將圖像從 JTable 顯示到 JLabel 或從數據庫顯示到

如何使用 JTable 鼠標單擊事件將圖像從 JTable 顯示到 JLabel 或從數據庫顯示到

BIG陽 2023-05-17 14:51:04
這個問題可能在這里被問過幾次,但我發現其中一些未解決期望的輸出:如果我單擊任何包含圖像的特定行,那么它應該在 中顯示圖像JLabel,但是如果該行不包含圖像,那么標簽應該顯示“沒有可用的照片”。下面是我目前用來顯示圖像的代碼JTable行jlabelPhoto。if(EmpDBTable.getValueAt(getData, 12) != null){? ? try {? ? ? ? ? ? ? ?? ? ? ? ?byte[] byteArray = (byte[]) EmpDBTable.getValueAt(getData, 12);? ? ? ? ?ByteArrayInputStream bais = newByteArrayInputStream(byteArray);? ? ? ? ?BufferedImage bImg = ImageIO.read(bais);? ? ? ? ?ImageIcon icon = new ImageIcon(bImg.getScaledInstance(jLabelPhoto.getWidth(), jLabelPhoto.getHeight(), Image.SCALE_SMOOTH));? ? ? ? ?jLabelPhoto.setIcon(icon);? ? ? ? ?bais.close();? ? } catch (Exception e) {? ? ? ? ?JOptionPane.showMessageDialog(null, e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);? ? }}else{? ? jLabelPhoto.setText("No Photo Available");}此代碼允許我使用比例將圖像正確顯示到標簽中,但問題是如果我單擊其中沒有圖像的行,那么上一個圖像仍然出現在標簽上。
查看完整描述

1 回答

?
蕪湖不蕪

TA貢獻1796條經驗 獲得超7個贊

您的問題可能是因為您忘記在 else 塊中將 JLabel 的圖標設置為 null:


} else {

    jLabelPhoto.setText("No Photo Available");

    jLabelPhoto.setIcon(null);  // need to add this

}

如果這不能解決問題,那么您可能需要調試 if 塊條件:


if(EmpDBTable.getValueAt(getData, 12) != null) {

也許保存的數據不是圖像,但也不為空,但由于您保存了所有數據和代碼,因此如果需要,將由您自行調試。


查看完整回答
反對 回復 2023-05-17
  • 1 回答
  • 0 關注
  • 143 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號