2011-04-03 66 views
1

您將如何處理正在擴展JPanel的自定義swing組件中的單擊。我正在製作一款遊戲,我想知道如何處理點擊。具體在不同的線程比gui,和繪畫?我將如何做到這一點,這裏是我的代碼:處理單擊自定義Swing組件擴展JPanel?

package com.games.bubblecards; 

    import java.awt.Graphics; 
    import java.awt.Graphics2D; 

    import javax.swing.JPanel; 

    public class Canvas extends JPanel { 
     private static final long serialVersionUID = 1L; 

     public Canvas() { 
      super(); 
     } 

     public void paint(Graphics g) { 
      Graphics2D g2d = (Graphics2D)g; 
      g2d.drawString("Hello It Works", 10, 10); 
     } 

} 
+0

自定義繪畫是通過覆蓋paintComponent()方法而不是paint()方法來完成的。也不要使用Canvas作爲類名,因爲Canvas已經是一個AWT類,這會讓人們感到困惑。 – camickr 2011-04-03 21:37:26

回答

2

可以通過添加一個MouseListener的到您的組件處理鼠標的點擊,這是標準的Swing組件或擴展Swing組件自定義組件沒有什麼不同。必須在主Swing線程EDT上調用鼠標監聽器的方法(並且默認情況下這是發生什麼而不需要特殊代碼),但是如果需要,監聽器代碼可以設置並啓動後臺線程。

相關問題