我想用JLabel替換JButton,並且希望我的代碼在單擊JLabel時執行某些操作。我可以向JLabel添加一個動作偵聽器嗎?
當我有一個JButton我用動作監聽器來處理按鈕點擊:
myButton.addActionListener(new clicksListener(arg1,this))
當我更換myButton
通過myLabel
我在Eclipse以下錯誤信息:
的方法 addActionListener(ChipsListener)爲 undefined爲類型JLabel
但我知道應該可以將附加的Click處理程序附加到JLabel。有人知道如何做到這一點嗎?
我不明白你的邏輯。你的意思是所有'Component'都可以添加'MouseListener'(任何引用)?什麼樣的小部件可以添加'ActionListener'? – Tony 2014-12-31 10:55:56
是的,'addMouseListener()'方法在'Component'上定義。當鼠標進入或退出組件時,或者在組件內按下按鈕或在組件內按下按鈕後,此類會生成MouseEvent對象。任何擴展Component的類都可以有任意數量的監聽這些事件的MouseListener引用。 addActionListener()'在'AbstractButton'上定義,並在按下按鈕時生成'ActionEvent'對象。由於'JLabel'沒有擴展'AbstractButton',它不會生成'ActionEvent'對象。試試'JButton'。 – 2014-12-31 20:23:24