2013-10-12 19 views
1

可以告訴我這部分代碼在做什麼?瞭解Netbeans GUI中的按鈕/鼠標偵聽器生成的代碼

jButton1.addMouseListener(new java.awt.event.MouseAdapter() 
          { 
       public void mouseClicked(java.awt.event.MouseEvent evt) 
           { 
        jButton1MouseClicked(evt); 
       } 
        }); 

爲什麼addMouseListener方法的參數中有方法?有人可以詳細解釋一下嗎?即時通訊使用NetBeans,這是代碼生成。

+0

這是一個匿名類。 –

+1

'jButton1.addMouseListener'不要將鼠標偵聽器添加到按鈕。使用'ActionListener'!動作監聽器將響應鼠標**和**鍵盤。作爲進一步的提示:在你理解組件,監聽器和佈局之前避免使用GUI構建器,否則就會導致這樣的結果(它會產生你不瞭解的糟糕代碼)。 –

+1

許願@ AndrewThompson的評論是一個答案,因爲它是迄今爲止唯一值得回答的問題。 –

回答

0

這是一個匿名的MouseAdapter,意味着它調用一個沒有變量/賦值的新類實例。代碼本身正在調用一個新的自定義事件處理方法jButton1MouseClicked(),這是netbeans爲您生成的,以便您可以添加自己的代碼處理方法。

0

是的,不要將鼠標監聽器添加到按鈕。那麼,我使用這種方法來使用NetBeans在我的GUI中獲得X和Y鼠標點擊的位置。

右鍵單擊擺動容器:選擇事件:選擇鼠標:選擇MouseClicked。添加下面的一段代碼; (當然,我的文本字段有變量名稱tfMouseX和tfMouseY)。

tfMouseX.setText(evt.getX() + ""); 
tfMouseY.setText(evt.getY() + "");