Java-使用JTable中的路径显示图像

Java-使用JTable中的路径显示图像,java,swing,jtable,javax.imageio,Java,Swing,Jtable,Javax.imageio,我偶然发现我的程序有问题 它的作用:侦听JTable中的行选择,使用“getSelectedRow”获取单元格内容,如下所示: public void valueChanged(ListSelectionEvent e) { int row = resultTable.getSelectedRow(); String val = resultTable.getValueAt(row,2).toString(); System.out.println("The

我偶然发现我的程序有问题

它的作用:侦听JTable中的行选择,使用“getSelectedRow”获取单元格内容,如下所示:

 public void valueChanged(ListSelectionEvent e) {   

    int row = resultTable.getSelectedRow();
    String val = resultTable.getValueAt(row,2).toString();

    System.out.println("The value of cell 2 at selected row is: " + val);

 }
上面的示例中没有显示的是JTable的单元格2包含图像的本地路径,这些路径是从本地运行的MySQL数据库获取的

我希望它做什么:我希望在触发valueChanged(显示在上面)时,使用JTable单元格2中包含的路径在外部JFrame中绘制和显示图像

考虑到上述情况(以及我在这方面还相当陌生的事实),我如何将这个“val”传递给ImageIO.read(我假设它将在单独的类中运行?)


谢谢您的时间,任何帮助都将不胜感激

JPEG图像实际上不需要ImageIO。只需添加此项而不是System.out.println:

JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JLabel label = new JLabel(new ImageIcon(val));
frame.setContentPane(label);
frame.pack();
frame.setVisible(true); 
如果val参数包含有效路径,则将显示图像


如果图像被多次打开,请检查ListSelectionEvent的getValueIsAdjusting()值,这些图像是什么类型的?PNG,JPEG?这些都是JPEG图像,但据我所知,imageIO能够显示大多数图像类型?谢谢你的回复,我会马上测试它。不过,还有一个后续问题,默认路径(如果我只放文件名而不是完整路径)将与运行它的.java文件的home dir相同,对吗?我真的不明白默认路径是什么意思。文件将放在您存储它们的任何位置。如果所有文件都在同一目录中,则可以将该目录放入配置文件中,并将此路径附加到valueChanged中的val。我想如果你把图像作为CLOB存储在数据库中会更好,如果你不知道它是什么,谷歌搜索CLOB。哦,对不起,如果我把我的问题复杂化了,我想问的是,如果“val”是“example.jpg”,那么“example.jpg”应该放在哪里显示?不管这个问题,我发现自己,谢谢你的代码,它的工作原理与我希望的完全一样,只是它会打开映像两次(不过这与我以前的代码有关),如果您确定db服务器和客户端将始终安装在同一台机器上,那么您可以将文件放在任何您喜欢的位置,将此目录添加为应用程序的配置参数,并将其附加到文件名中。如果不在同一台机器中(如果您想支持多个客户端,这是一个更现实的场景),则可以将图像存储为CLOB(因此图像存储在DB中),或者使用一些网络存储,并使用与以前相同的方法(路径的可配置参数)