【问题标题】:Add/Remove Swing jList (built with Netbeans GUI builder)添加/删除 Swing jList(使用 Netbeans GUI 构建器构建)
【发布时间】:2017-12-30 17:44:07
【问题描述】:

我知道有人问过如何将元素添加到 jList 的问题。然而......这有点不同,因为我一直在使用 NetBeans GUI builder。它将我的两个列表实例化为 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- 不要使用 Netbeans 表单编辑器或 2- 不要用值预先填充模型,在 initComponent 方法之后执行并使用 DefaultListModel
  • 3- 使用“代码”选项将自己的代码注入到创建过程中; 4-单击“模型”属性中的“...”按钮,从“使用设置...模型属性”组合框中选择“自定义代码”并注入您自己的代码

标签: java swing user-interface netbeans jlist


【解决方案1】:
  1. 不要使用 Netbeans 表单编辑器或
  2. 不要用值预先填充模型,在initComponent 方法之后执行并使用DefaultListModel
  3. 使用属性表编辑器上的“代码”选项将您自己的代码注入到创建过程中或
  4. 点击“model”属性中的...按钮,从“Set ... model property using”组合框中选择“Custom code”并注入自己的代码,创建自己的@ 987654323@,可能使用DefaultListModel

无论您是手动创建JList还是通过Netbeans,定义自己的模型(支持动态更新)的基本过程都保持不变,您只需要确定注入代码的最佳位置

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-27
    • 2012-06-03
    • 2014-07-09
    • 1970-01-01
    • 2011-09-22
    • 2011-12-21
    • 1970-01-01
    相关资源
    最近更新 更多