這個問題可能在這里被問過幾次,但我發(fā)現(xiàn)其中一些未解決期望的輸出:如果我單擊任何包含圖像的特定行,那么它應(yīng)該在 中顯示圖像JLabel,但是如果該行不包含圖像,那么標(biāo)簽應(yīng)該顯示“沒有可用的照片”。下面是我目前用來顯示圖像的代碼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");}此代碼允許我使用比例將圖像正確顯示到標(biāo)簽中,但問題是如果我單擊其中沒有圖像的行,那么上一個圖像仍然出現(xiàn)在標(biāo)簽上。
1 回答

蕪湖不蕪
TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個贊
您的問題可能是因?yàn)槟浽?else 塊中將 JLabel 的圖標(biāo)設(shè)置為 null:
} else {
jLabelPhoto.setText("No Photo Available");
jLabelPhoto.setIcon(null); // need to add this
}
如果這不能解決問題,那么您可能需要調(diào)試 if 塊條件:
if(EmpDBTable.getValueAt(getData, 12) != null) {
也許保存的數(shù)據(jù)不是圖像,但也不為空,但由于您保存了所有數(shù)據(jù)和代碼,因此如果需要,將由您自行調(diào)試。
添加回答
舉報(bào)
0/150
提交
取消