java - 如何在没有 EventListener 的情况下以编程方式在 JList 中添加元素?

标签 java swing netbeans event-handling jlist

我想从用户定义的函数(不是任何事件监听器)在 JList 中添加元素。

我的 JList 为:

DefaultListModel listModel = new DefaultListModel();
JList jList1 = new JList(listModel);
listModel.add(0,"Welcome");
listModel.addListDataListener(new MyListDataListener());

class MyListDataListener implements ListDataListener {
        public void contentsChanged(ListDataEvent e) {
             //DefaultListModel model = (DefaultListModel)e.getSource();
            //jList1.setModel(listModel);
            System.out.println("inside content");
        }
        public void intervalAdded(ListDataEvent e) {
           // jList1.setModel(listModel);
            jList1.setListData(a);
            //System.out.println("inside added"+e.getSource()+" "+jList1.getModel());

        }
        public void intervalRemoved(ListDataEvent e) {

        }
    }

当我想从鼠标点击监听器添加元素时,就会调用 IntervalAdded,如

private void sendButtonMouseClicked(java.awt.event.MouseEvent evt) {                                        
        // TODO add your handling code here:
        if(!inputField.getText().isEmpty())
        {
            message=myName+" : "+inputField.getText();


        listModel.add(GlobalVariable.i,message);


        inputField.setText(null);
        GlobalVariable.i++;
        }

    }

也来 self 的用户定义函数,即

public void messagereceived(String s)
    {
                 listModel.add(GlobalVariable.i,message);
                 GlobalVariable.i++;
}

但是 listModel.setmodel() 每当从 messagereceived() 函数调用时都不起作用。

如何通过该函数在 JList 中添加元素?

最佳答案

  1. messagereceived ,你不是在打电话listModel.setmodel()但是listModel.add(GlobalVariable.i,message);
  2. 当您调用jList1.setListData(a);时您正在 jList1 上隐式创建并设置一个新的 ListModel 。因此,当您修改listModel时,它不会反射(reflect)在您的 jList1 上.
  3. GlobalVariable -->看起来像一些古老的C代码风格的标志。适本地使用对象来代替。

关于java - 如何在没有 EventListener 的情况下以编程方式在 JList 中添加元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13061812/

相关文章:

java - 试图为Java(JSP)中的随机数设置范围,但我不确定如何处理

java - 在Linux中删除环境变量末尾的尾随bin/java

Java LOC通过比较两个项目进行计数

java - 我用 Java 编写的扫雷程序抛出 NullPointerException

java - 如何使一个窗口透明、可拖动并添加一些分层组件?

java - 将 system.out 放入自动生成的 JTextArea 中

Java无法跳出while循环

java - Spring Controller 测试依赖项失败

java - 我将如何在 Java 中的 JPanel 上重复图像?

java - 用 ScrollingImagePanel 替换 JPanel?