使用NetBeans,我创建了一个GUI表单并添加了JList
组件。为了添加项目,我根据许多网站创建ListModel
。
DefaultListModel<String> model = new DefaultListModel<>();
JList<String> list = new JList<>( model );
问题是第二行是由Netbean自动生成的,这是不可编辑的!所以,我看到
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]; }
});
我不知道如何使用它。我看到了一些与我的问题相似的问题,但是对我而言,目前尚不清楚问题到底是什么以及为什么我不能按预期以正常方式添加/删除项目!
,因为当NetBean为您生成代码时,它将为变量和方法添加访问修饰符private
。您可以将其更改为public
,因此您可以更改。为此,
一种方法:
右键单击在 navigator 或GUI中的Jlist上。接下来,转到自定义代码然后,您将在其中获取弹出窗口默认代码 sust> custom property 。
。或:
转到jlist 属性 ->单击代码选项卡,然后在其中更改变量修饰符 private
to public
,然后您可以更改代码您在问题中显示的。
更新:
model = new DefaultListModel<>();
list = new javax.swing.JList();
list.setModel(model);
删除setModel()
内的参数并将您的模型传递到其中。
添加元素:
model.addElement("anything here");
最后一件事将您的 DefaultListModel
声明更新为jform构造函数上面的声明:
DefaultListModel<String> model;
public NewJFrame() {
initComponents();
}