通过netbeans编辑自动生成的代码

时间:2017-05-31 17:04:47

标签: java netbeans-8

使用Netbeans,我创建了一个GUI表单并添加了一个JList组件。为了添加项目,我根据许多网站创建了ListModel

DefaultListModel<String> model = new DefaultListModel<>();
JList<String> list = new JList<>( model );

问题是第二行是由Netbeans自动生成的,不可编辑!所以,我看到

private javax.swing.JList<String> list;
...
list = new javax.swing.JList<>();

那么如何将该行更改为JList<>( model )?我必须说,在生成的代码中,我看到了

 list.setModel(new javax.swing.AbstractListModel<String>() {
        String[] strings = { "String" };
        public int getSize() { return strings.length; }
        public String getElementAt(int i) { return strings[i]; }
    });

我不知道如何使用它。我看到一些类似于我的问题,但我不清楚究竟是什么问题以及为什么我不能按正常方式添加/删除项目!

1 个答案:

答案 0 :(得分:1)

因为当netbeans为你生成代码时,它会为变量和方法添加访问修饰符private。您可以将这些更改为public,然后您就可以更改。为此,

一种方法:

右键单击导航器中的jList或GUI中的。接下来,转到自定义代码,然后您将弹出窗口,其中包含默认代码自定义属性

或者:

转到jList 属性 - &gt;点击代码标签,然后将变量修饰符 private更改为public,然后您就可以更改问题中显示的代码。< / p>

<强>更新

model = new DefaultListModel<>();
list = new javax.swing.JList();

list.setModel(model);

删除setModel()中的参数并将模型传递给它。

添加元素:

model.addElement("anything here");

最后一件事是将DefaultListModel声明更新到JForm构造函数的上面:

DefaultListModel<String> model;
public NewJFrame() {
    initComponents();
}