2012-05-08 46 views
4

我有一个应用程序,主要由屏幕上显示的JList组成。我希望每次修改AbstractListModel(向列表添加或删除项目)时,都会以某种方式通知应用程序已做出更改,并将JFrame的标题修改为frame_title[unsaved]之类的内容。在我保存应用程序后,[unsaved]标签将会消失。java保存更改

我想也许使用observer/observable技术可以完成这项工作,但我不知道该怎么做。也许有更适合我的问题的东西?我是新来的Java新的Java,所以这就是为什么我来这里寻求帮助。谢谢。

更新:我不能真正在我的情况下使用观察者模式,因为我已经扩展AbstractListModel类。

+0

你为什么不能够观察你的'AbstractListModel'延期?每个'ListModel'都有一个为其添加监听器的机制,或者'JList'不起作用。所以你完全有能力观察任何'ListModel' – Robin

回答

1

使用此:

AbstractListModel model = ...; 
model.addListDataListener(new ListDataListener() { 
    public void intervalAdded(ListDataEvent e) { 

    } 

    public void intervalRemoved(ListDataEvent e) { 

    } 

    public void contentsChanged(ListDataEvent e) { 

    } 
});