【问题标题】:How to add element to existing JList如何将元素添加到现有的 JList
【发布时间】:2011-12-31 21:28:49
【问题描述】:

我的部分代码

 ArrayList<Item> i = g.getItems(); 
 Vector itemsVector = new Vector(i); 
 JList items = new JList(iemsVector); 

稍后在代码中,我创建了要添加到 JList 的新对象。我该怎么做?

【问题讨论】:

    标签: java swing jlist


    【解决方案1】:

    使用 DefaultListModel 而不是向量填充 JList,并使模型在类中可见。然后只需在列表模型上调用 addElement 即可向其中添加项目。

    【讨论】:

    • hmm,但是如果您想确保只向 JList 添加一种类型的对象怎么办?这是不完美的。
    • @AexMills:你不知道你在说什么。 DefaultListModel 允许泛型,您永远不会将模型直接暴露给外部世界,而是将其设为私有。然后你会给类一个公共方法以允许添加到模型中,但是方法的参数(通用或其他)会阻止任何人尝试添加错误类型的对象。
    【解决方案2】:

    好吧,您不能直接使用该数组,但使用它可能会对您有所帮助。

     DefaultListModel demoList = new DefaultListModel();
     demoList.addElement("addElements");
     JList listd = new JList(demoList);
    

    这样您就可以将元素添加到 LIST 中。

    【讨论】:

      【解决方案3】:

      您可以将它 (new object) 添加到 itemsVector (Vector)。将item 添加到 Vector 对象后,调用items.setListData(itemsVector); 方法。

      【讨论】:

        【解决方案4】:

        尝试使用add 方法,如下所示:items.add(newItem)。

        【讨论】:

          【解决方案5】:
          private javax.swing.JList<String> list1;
          list1.setFont(new java.awt.Font("Tahoma", 0, 24));
          
          DefaultListModel listModel1 = new DefaultListModel();
          
          String st="Working hard";
          listModel1.addElement(r);
          
          list1.setModel(listModel1);
          

          【讨论】:

            【解决方案6】:

            我正在使用类似于以下的代码:

            public void addRow(MyObject object)
            {
                Object[] objects = new Object[]{object.getSomeInt(), object.getSomeString()};
                DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
                tableModel.addRow(objects);
            }
            

            【讨论】:

              【解决方案7】:

              试试这个:

              DefaultListModel model = new DefaultListModel();
              JList list = new JList(model);
              
              // Initialize the list with items
              String[] items = { "A", "B", "C", "D" };
              for (int i = 0; i < items.length; i++) {
                model.add(i, items[i]);
              
              }
              

              来源:java2s

              【讨论】:

                猜你喜欢
                • 2013-04-19
                • 1970-01-01
                • 2021-12-20
                • 1970-01-01
                • 2016-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多