如何将Java Deque转换为DefaultListModel?
我写了一个包含Deque< T>的类(我们称之为Model.
java),其中包含用于入队和出列项的方法.现在我想把它绑定到GUI JList.我对如何以某种方式使用我的“模型”数据 – Deque – 作为JList想要的DefaultListModel感到困惑.我仍然在努力真正获得OO概念,因为它们适用于GUI编程. DefaultListModel文档说明:
有没有办法让DefaultListModel使用我的Deque< T>而不是Vector,从而允许我的Model.java代码保持基本不变,同时免费提供所有的收听/通知行为?或者我是否必须重写Model.java以使用DefaultListModel而不是Deque< T>? 解决方法
请注意,JList构造函数采用ListModel(接口),而不是DefaultListModel(实现).这是一个OO原则(契约),指定JList可以使用碰巧实现ListModel接口的任何对象.来自
Object Oriented Programming Concepts的Java教程:
由于ListModel只有四个方法,因此您的类应该很容易实现它们并将操作委托给您的内部Deque.你的班级应该被宣布为 public class Model implements ListModel { .... 并将包含四个实现ListModel方法的其他方法.这些实现可以完成您需要的任何内容,但必须遵守ListModel的定义以及在JavaDoc中作为ListModel协定的一部分指定的任何行为. 完成此操作后,您可以构造一个JList,将类Model的实例传递给构造函数. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |