2012-05-23 38 views
0

我偶然發現了一個與我的程序有關的問題。Java - 使用來自JTable的路徑顯示圖像

作用:偵聽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數據庫中獲取的。

我想要它做什麼:我想使用包含在我的JTable單元2繪製和時的valueChanged(上面顯示)被觸發在外部JFrame的顯示圖像的路徑。

考慮到上述因素(以及我對此相當陌生的事實),我該如何去將這個'val'傳遞給一個ImageIO.read(我假設它將在一個單獨的類中運行? )

感謝您的寶貴時間,任何幫助appriciated!

+0

什麼樣的圖片是那些檢查getValueIsAdjusting()的值? PNG,JPEG? – mavroprovato

+0

這些都是jpeg圖像,但是從我所知道的imageIO能夠顯示大多數圖像類型? – Bittein

回答

2

你並不真正需要的ImageIO JPEG圖像。只需添加此代替您的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

+0

謝謝您的回覆,我會馬上對它進行測試。 雖然後續的問題是,默認路徑(如果我只將文件名而不是完整的路徑)將與它運行的.java文件的主目錄相同,對嗎? – Bittein

+0

我不明白默認路徑是什麼意思。這些文件將存儲在任何地方。如果所有文件都在同一目錄中,則可以將該目錄放入配置文件中,並將此路徑附加到valueChanged內的val中。我認爲如果您將圖像作爲CLOB存儲在數據庫中,則會更好,如果您不知道它是什麼,則可以使用google for CLOB。 – mavroprovato

+0

哦對不起,如果我過於複雜的問題,我要問的是,如果'val'是'example.jpg''example.jpg'應放在哪裏顯示?從這個問題 – Bittein

相關問題