0

我偶然发现了我的程序的一个问题。

它的作用:监听 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(我假设它将在单独的类中运行?)

感谢您的宝贵时间,任何帮助都是值得的!

4

1 回答 1

2

对于 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() 值

于 2012-05-23T13:21:02.210 回答