我不知道如何做到這一點,或者如果有可能。基本上我正在寫我自己的GUI系統,我想要一個界面來處理點擊檢測。 gui元素(GuiButton
等)都是GuiElement
的子文件夾。我想要的是能夠靜態調用GuiElement.onCLick(x,y)
,然後讓該類的所有子類實例觸發其覆蓋的OnCLickListener
接口。從靜態方法調用所有實例的接口方法
基本上我不想保留每個元素的參考,並通過它循環。
我不知道如何做到這一點,或者如果有可能。基本上我正在寫我自己的GUI系統,我想要一個界面來處理點擊檢測。 gui元素(GuiButton
等)都是GuiElement
的子文件夾。我想要的是能夠靜態調用GuiElement.onCLick(x,y)
,然後讓該類的所有子類實例觸發其覆蓋的OnCLickListener
接口。從靜態方法調用所有實例的接口方法
基本上我不想保留每個元素的參考,並通過它循環。
我假設你正在編寫自己的GUI作爲練習。
評論是正確的,你可能不想保留對GuiElement
的所有實例的引用,但你必須。除此之外,你可能不想有一個靜態的電話GuiElement.onClick(x, y)
。像這樣的靜態調用是一種代碼味道...甚至更多,你可能不想傳播鼠標點擊到所有GuiElement
,但只能到位於(x, y)
的GuiElements
。
你應該看看如何在Swing中定義MouseEvent
。即使Swing有一些缺點,它的大部分基本概念都是健全的。研究它的實施方式會給你一些正確的方向。編寫自己的GUI層是一個非常好的練習,它是面向對象設計的一個非常好的操場,但是一些閱讀會幫助你在這個方向上走很長的路。
或者他可以使用Swing,但在他的帖子中他說他正在「編寫自己的gui系統..」 – Dave 2014-09-12 21:42:23
你可能不想那樣做,但這就是你必須要做的。 – 2014-09-12 21:21:25
不會工作,並且可能表明您需要重新設計您的應用程序。 – 2014-09-12 21:33:03
@Guillaume:不,不要鼓勵鏈接發送!如果有相關的例子,OP應該將代碼直接發佈到他們的問題中。 – 2014-09-12 21:42:34