需要'扩展'MouseAdapter和KeyAdapter

时间:2012-04-01 00:44:32

标签: java swing mouseevent key-events

想知道创建需要处理鼠标点击和按键操作的类的最佳实践方法是什么。显然,不可能在Java中继承多个类,所以目前我正在使用MouseListener和KeyListener接口,这意味着当我实际上只需要keyReleased和mouseReleased时,我必须在我的类中有很多空方法来满足接口。 / p>

如果我可以使用MouseAdapter和KeyAdapter,我可以摆脱这些方法并拥有更清晰的代码。所以关于使用这些类的方法的任何建议都没有比我已经拥有的更麻烦。

4 个答案:

答案 0 :(得分:6)

您可以继承其中一个Adapter类,然后实现其他接口。这样你只需要完成大约一半的工作。

我建议使用提供最多方法覆盖率的Adapter,以尽量减少您的工作。

如果你已经继承了其他东西,那么你显然别无选择,只能实现这两个接口。

答案 1 :(得分:4)

扩展MouseAdapter并优先使用Key Bindings KeyListenerKeyAdapter

答案 2 :(得分:4)

我要说明你不应该尝试将这个功能合并到一个单独的类中,尝试这样做可能是一个糟糕的设计决定。如果你说这是因为他们都会煽动相同的动作,那么一定要让两个控制类共享相同的模型,否则会创建单独的类 - 一个用于处理鼠标交互,另一个用于处理键盘交互(和trashgod states,1+给他, - 使用Key Bindings,而不是KeyListener)。

答案 3 :(得分:2)

你可以扩展一个,然后使用“通过委托替换继承”重构(在Intellij中,我假设eclipse有一个等价物)然后扩展另一个