使用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]; }
});
我不知道如何使用它。我看到一些类似于我的问题,但我不清楚究竟是什么问题以及为什么我不能按正常方式添加/删除项目!
答案 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();
}