(免责声明:我是一个非常新的挥杆,刚刚开始,所以我可能很糟糕)
所以我的子类有一个MouseListener
,可以在用户双击该类时检测到;但是,现在,父类并不知道孩子已经检测到点击。至于现在,我正在考虑在我的子类中引用父类,并在检测到双击时调用父方法之一;但是,我认为这不是好的OO设计。
儿童班:
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
isFlagged = true; //flags that this class has been doubleclicked
//I'm thinking of doing something like:
//parentClass.flagged(passInThisClass);
}
}
父类:
for(childClass c : childrenClass) {
if(c.isFlagged()) { //do action}
}
问题是当我第一次运行父类时,没有标记任何子代,因此不执行任何操作。当孩子被标记时,父类不知道它应该再次为每个循环运行这个,因此没有再发生任何事情。我可以这么说,我可以在方法中使用for-each循环并让子项在检测到双击时调用该方法,但我确信必须有更好的方法来执行此操作。
在这种情况下,最好的方法是什么?