2010-05-12 85 views
2

如何添加可由用戶點擊圖標的圖標(汽車,地球或其他)圖像? 我想用改寫的paint方法將它們添加到jpanel上。創建可點擊jpanel的圖像

+0

你的意思是點擊並拖動? – trashgod 2010-05-12 14:54:34

回答

4

只需使用帶圖標的JLabel。然後添加一個MouseListener來監聽點擊。

JLabel label = new JLabel(yourIcon); // probably an ImageIcon 
label.addMouseListener(new MouseAdapter(){ 
    public void mouseClicked(MouseEvent e) { 
    System.out.println("Click at: " + e.getPoint(); 
    } 
}); 
+1

你不應該處理mouseClicked。標準是處理mousePressed(或根據您的要求發佈)。這是爲什麼按鈕是首選的另一個原因。它將按下/釋放到一個ActionEvent中。而如果在按下事件和釋放事件之間即使是一個像素移動鼠標,mouseClicked也不會觸發。 – camickr 2010-05-12 19:54:23

0

最簡單的方法是將一個圖標添加到JButton,然後您可以使用ActionLlistener來處理鼠標單擊。您也可以使用:

button.setBorderPainted(false); 

擺脫邊界,因此它看起來像一個標籤。

+0

使用按鈕有時會在各種外觀和感覺上出現問題,特別是如果圖像具有透明圖像 - 即處於翻轉或裝備狀態繪畫中。 – Keilly 2010-05-12 19:00:57

+1

按照通常使用的方式在按鈕上使用圖標和文本時,這會如何不同?你不會有同樣的問題嗎?這聽起來像是LAF的問題,儘管我從來沒有在Metal或Windows上看過它。 – camickr 2010-05-12 19:58:06