添加/删除Swing jList(使用Netbeans GUI构建器构建)

时间:2017-07-25 01:30:39

标签: java swing user-interface netbeans jlist

我知道如何向jList添加元素的问题。然而......这有点不同,因为我一直在使用NetBeans GUI构建器。它将我的两个列表实例化为AbstractListModels。然后我似乎无法将一个列表中的元素添加到另一个列表中,然后从第一个列表中删除该元素。

JList:

colors1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
        colors1.setModel(new javax.swing.AbstractListModel<String>() {
            String[] strings = { "red", "yellow", "green", "blue", " ", " ", " ", " ", " " };
            public int getSize() { return strings.length; }
            public String getElementAt(int i) { return strings[i]; }
        });
        jScrollPane1.setViewportView(colors1);

        colors2.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
        colors2.setModel(new javax.swing.AbstractListModel<String>() {
            String[] strings = { "black", "white", "gray", "brown", " ", " ", " " };
            public int getSize() { return strings.length; }
            public String getElementAt(int i) { return strings[i]; }
        });
        jScrollPane2.setViewportView(colors2);

我尝试强制转换为defaultlistmodel并添加一个元素(还没有删除)。

 private void addColorsActionPerformed(java.awt.event.ActionEvent evt) {                                          
        DefaultListModel list1 = (DefaultListModel) colors1.getModel();
        DefaultListModel list2 = (DefaultListModel) colors2.getModel();
        list2.addElement( colors1.getSelectedValue());
        //Haven't actually attempted this yet but if I had would look like. 
        //list1.removeElement(colors1.getSelectedValue());
    }     

1 个答案:

答案 0 :(得分:1)

  1. 请勿使用Netbeans表单编辑器或
  2. 请勿使用值预先填充模型,请在initComponent方法之后执行并使用DefaultListModel
  3. 使用属性表编辑器中的“code”选项将您自己的代码注入创建过程或
  4. 单击“model”属性中的 ... 按钮,从“使用”组合框设置“模型属性”中选择“自定义代码”并注入自己的代码,创建自己的{ {1}},可能使用ListModel
  5. 定义您自己的模型的基本过程(支持动态更新)保持不变,无论您是手动创建DefaultListModel还是通过Netbeans,您只需要决定注入代码的最佳位置< / p>