我想知道,Swing組件如何知道鼠標在何處以及何時被點擊,以及如何在自己的類中使用它,而無需每次添加新的鼠標偵聽器想要添加一個對象到新面板?Swing中的鼠標事件處理
編輯: 林擴展JComponent的,我想叫當鼠標移動 EDIT2事件方法: 明白了現在的工作感謝大家!
我想知道,Swing組件如何知道鼠標在何處以及何時被點擊,以及如何在自己的類中使用它,而無需每次添加新的鼠標偵聽器想要添加一個對象到新面板?Swing中的鼠標事件處理
編輯: 林擴展JComponent的,我想叫當鼠標移動 EDIT2事件方法: 明白了現在的工作感謝大家!
添加一個ActionListener到您的JButton,它會告訴你它被點擊,像這樣的時候:
someButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
//the button was pressed and do your stuff here.
}
}
我不使用JButton,即時通訊使用我自己的類,我想繼承JPanel –
的鼠標監聽器,然後在構造函數中執行:this.addMouseListener(..... –
然後執行什麼操作give? –
how does the JButton know where the mouse is and when it clicked
那什麼聽衆是 - 它偵聽相應類型的事件
只是執行ActionListener
並通過這樣做註冊給它的聽衆: jbutton.addActionListener(this);
現在,當你點擊按鈕,它就會產生,這將在這部分
public void actionPerformed(ActionEvent e){
... // handle event
}
我知道,我希望能夠從JPanel接收鼠標事件,並且我沒有使用JButton類,我正在編寫自己的類 –
It如果你用自定義類擴展JButton(最好的方法是imo),但仍然可以工作,但即使你不能使按鈕實現actionlistener ... – Jimmt
*「..不使用JButton類」*這將解釋你爲什麼提到' JButton'在問題的標題和正文中。沒有等待,其他的事情..它完全***失敗***解釋爲什麼.. –
b處理從其他文章的評論的event
,要使用自定義組件註冊MouseListener
你Component#addMouseListener
您可能希望通過How to write a mouse listener瞭解更多信息
因此,您想要什麼使您清楚地瞭解需求。我假設你正在向JPanel添加一個對象(很可能是你使用paintComponent繪製的,或者是一個圖像),並在該特定對象上使用鼠標監聽器? – exexzian
從組件角度來看,您不能「共享」鼠標監聽器,因爲大多數組件本身並不實際使用它。您將需要製作您自己的監聽器並將其註冊到組件。這就是它的工作原理 – MadProgrammer