我有称为“层次结构”的对象,基本上只是一个字符串列表,例如。[1 2 3 4]。我还有一个名为 FormattedHierarchies 的对象,它应该始终以用户希望它们表示的方式保持层次结构的格式化版本,例如 (1-4) 或 {1,2,3,4}。
我的问题是这样的:
我想在层次结构发生更改时立即更新 FormattedHierarchy(例如,如果层次结构从 [1 2 3 4] 更改为 [1 2 3],则 FormattedHierarchy 应从 (1-4) 更改为 (1-3))。
谷歌搜索出现了http://docs.oracle.com/javase/tutorial/uiswing/events/changelistener.html 但我的问题是:如果我想让 Hierarchy 实现 ChangeListener,它必须实现方法“stateChanged” .
类型 Hierarchy 必须实现继承的抽象方法 ChangeListener.stateChanged(ChangeEvent)
让 Hierarchy 创建一个新的 FormattedHierarchy 是不可行的,我也认为这不是好的类设计。这是因为层次结构随后将实现处理其格式的东西(尽管是以间接方式)。
这个问题有没有标准或聪明的解决方案?