这基本上是一个建筑问题。Swing中的复合图案
我想实现composite pattern处理Swing组件;也就是说,我想将几个组件与其监听器和逻辑组合在一个单一组件中,以便于处理。
考虑一个简单的目录浏览器;比如说,JScrollPane中的一个JTree,其中一些逻辑处理用户扩展JTree节点时填充文件名。你将如何实现?
扩展JScrollPane并在构造函数中添加JTree等,然后您的应用程序处理JScrollPaneExtended类吗?或者你是扩展JPanel还是JComponent?或者,当您填充JFrame时,您是否使用所调用的方法将所有这些类拼接在一起?或者是其他东西?为什么?
我基本上在寻找关于别人使用的粗略指导原则;我显然希望处理某种形式的JComponent,以便在构建GUI时更轻松地进行处理,但是不管怎样,它不适合扩展最顶层的组件(本例中为JScrollPane),只是为了让某处放置胶合代码。
如果你不扩展JComponent,你扩展(或不扩展)是什么?如果不是JComponent,如何将组件放在GUI中? – Domchi 2010-10-14 22:10:40
@Domchi:我的“组件”只是至少一个具体的“JComponent”实例的花哨包装。基类定义了'JComponent getWidget()'(实际上我用''将其泛化),并且布局管理器和其他所有工作都是一样的。 –
2010-10-15 01:50:38