如何添加一个"听众"到JList

时间:2016-04-27 12:00:51

标签: java swing sockets jlist

我知道JList会像here那样支持actionlisteners,但我需要实现一个列表,当新套接字连接到服务器时,该列表会在框架中不断变化。所以我的问题是:实施此列表的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

DefaultListModel<String> data = new DefaultListModel<>();  //defaultlistModel

/**
adding data to jlist    **/
       data.addElement("new element");
       jList1.setModel(data);



/**action listner on data(defaultlistModel) will be called when the list is changed*/

    public void addlistner(){


    data.addListDataListener(new ListDataListener() {
        @Override
        public void intervalAdded(ListDataEvent e) {
            throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
        }

        @Override
        public void intervalRemoved(ListDataEvent e) {
            throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
        }

        @Override
        public void contentsChanged(ListDataEvent e) {
            System.out.println("added"+e.getIndex1());   
        }
    });

    } 

你不能用jlist做到这一点。但defaultListModel可能 每当您需要将数据添加到jlist时。您应该将您的元素添加到defaultlistmodel,然后将模型设置为jlist。 然后您可以编写一个列表器来调用defaultListModel中的更改属性。看看我的代码。