2012-02-11 50 views
-1

我使用下面的代碼在鼠標點擊事件顯示時顯示圖像。當我使用下面的代碼時,它將顯示圖像的路徑,特別是cell.how以顯示圖像那個特定的細胞?文件路徑顯示取代jtable中的圖像

private void jTable1MouseClicked(java.awt.event.MouseEvent evt) { 
URL url = getClass().getResource("image/Pointer.GIF"); 
ImageIcon testIcon = new ImageIcon(url); 
jTable1.setValueAt(testIcon, 0, 2); 
} 
+0

關於umpfth時間:只要模型返回正確的列類,JTable就可以很好地處理圖標。你打算多久詢問一次並得到完全相同的答案? – kleopatra 2012-02-11 13:43:35

+1

downvote是一次又一次詢問同一個問題... – kleopatra 2012-02-11 13:44:28

回答

1

編寫您自己的可重用組件並自行管理事件。您將ImageIcon及其路徑包裝在一個類中。爲該類註冊一個單擊處理程序,並收聽點擊事件,即更改容器中的組件時的單擊事件。保持state變量也交換容器的內容。要顯示path即時創建JLabel並將其添加到容器,或者可以在創建組件時創建JLabel

可能你的組件開始喜歡這個

public class MyComponent extends JComponent { 
    private JLabel label; //This displays the path 
    private ImageIcon image; //This displays the image 

    //Create a container of your wish 

    //Attach a click handler to both the label and the image or the container 

    //OnClick swap the JComponent in your container and repaint()! 

    //Construct it like this: 
    MyComponent(String path) { 
     //Initialize JLabel with "text" as the path 
     //Load ImageIcon from the path 
    } 
} 

這僅僅是一個起點。這種方法創建了一個可重用的組件,因此,您可以在JLabel中使用多個「這樣」的組件,並且保持代碼清潔。

+0

'ClickHandler' ..'onClick'? J2SE有哪些內容? – 2012-02-11 06:12:32

+0

我的意思是讓組件實現MouseListener並監聽'click'事件。這只是一個抽象的解釋。 – 2012-02-11 06:15:18

+0

你可以編輯'ClickHandler'(意味着一個類名)'點擊處理程序'(表示用戶輸入需要..)等?隨着最新的編輯,這將是值得加薪的。 – 2012-02-11 06:20:00

相關問題