gpt4 book ai didi

java - 如何使用 JTable 鼠标单击事件将图像从 JTable 显示到 JLabel 或从数据库显示到 JLabel?

转载 作者:行者123 更新时间:2023-12-02 02:08:08 27 4
gpt4 key购买 nike

这个问题可能已经在这里被问过几次了,但我发现其中一些问题尚未解决 Retrieving image from mysql column to jlabel or to jtable

期望的输出:

如果我单击任何包含图像的特定行,则它应该在 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");
}

此代码允许我按比例正确地将图像显示到标签中,但问题是如果我单击其中没有图像的行,则上一个图像仍然出现在标签上。

这里是视频的附加链接,以供正确说明。 https://vimeo.com/user101485383/review/351884404/57a10f86af

最佳答案

您的问题可能是因为您忘记在 else block 中将 JLabel 的图标设置为 null:

} else {
jLabelPhoto.setText("No Photo Available");
jLabelPhoto.setIcon(null); // need to add this
}

如果这不能解决问题,那么您可能需要调试 if block 条件:

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

也许保存的数据不是图像,但也不为空,但由于您保存了所有数据和代码,因此如果需要,将由您来调试。

关于java - 如何使用 JTable 鼠标单击事件将图像从 JTable 显示到 JLabel 或从数据库显示到 JLabel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57346902/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com