应如何管理监听器等?我发现只有一个按钮的例子等Java Swing GUI用户操作处理
我能想到的下列选项:
- 每个额外的类 - 看起来不正确,特别是当项目 可以动态创建
- 对于每个组类(如Form1中, 窗口2,controlButtonsOnLeft,controButtonsOnRight,MAINMENU, userMenu的,...),其中我会检查哪个按钮/组件引起这样 (经由的getSource例如方法)
- 一些超级(大小)控制米勒, 将接受所有用户操作每个
- 新的匿名类, 它将调用控制器的方法与指定 细节(可能枚举)
而另一个问题参数:我发现了很多的例子MVC,我想知道什么更好(或常用)的应用程序。由1人开发(应用程序不会很大)?
A.查看器设置听众控制器(A1-3)
B.控制器调用观看者的方法,它接受作为听者参数(方法addLoginSubmitListener,addControlBoldButtonListener等)
所有的以上是能够实现到目前为止,我会选择B4。 含义在控制我会做这样的事情:
这(在代码一个地方1个逻辑部分)结合可读代码,那并不产生任何不必要的冗余码,那并不需要任何难溶动态支票,是容易可重复使用等等。 您能否确认/评论此解决方案?
当为侦听器使用匿名实现时,以后无法在处理对象时将其移除,最终(以及您*将*具有这些情况)会导致内存泄漏。 – alterfox 2014-10-28 22:36:06
@alterfox:感谢您指点。 – Anonym 2014-10-28 22:52:01
@alterfox:这不是由GC处理的吗?监听器的列表是这种匿名监听器的唯一参考,在组件处置期间它将被清空,对吗?或者我也许会误解。在这种情况下,我将为此创建一个类并为构造函数添加一个参数,这将决定哪个方法将处理它。 [也许有更好的解决方案,这是第一个跨过我的脑海] – Anonym 2014-10-28 23:02:08