我不知道该怎么做或者是否有可能。基本上我正在编写自己的gui系统,我想要一个界面来处理点击检测。 gui元素(GuiButton
等)都是GuiElement
的子类。我想要的是能够静态调用GuiElement.onCLick(x,y)
,然后让这个类的所有子类实例触发它们被覆盖的OnCLickListener
接口。
基本上我不想保留每个元素的引用并循环遍历它。
答案 0 :(得分:0)
我假设您正在编写自己的GUI作为练习。
评论是对的,您可能不希望保留对GuiElement
的所有实例的引用,但您必须这样做。更重要的是,您可能不希望对GuiElement.onClick(x, y)
进行静态调用。像这样的静态调用是一种代码气味......甚至更多,你可能不希望将鼠标点击传播到所有GuiElement
,而只传播到位于GuiElements
的{{1}}。
您应该看看如何在Swing中定义MouseEvent
。即使Swing有一些缺点,它的大多数基本概念都是合理的。研究它是如何实现的将给你一些指向正确方向的指针。编写自己的GUI层是一个非常好的练习,它是面向对象设计的一个非常好的操场,但是一些阅读将帮助你在这个方向上走很长的路。