使用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]; }
});
我不知道该怎么用。我看到了一些与我的问题类似的问题,但是对于我来说,目前尚不清楚到底是什么问题,以及为什么我无法按预期方式以正常方式添加/删除项目!
那是因为当netbeans为您生成代码时,它将private
为变量和方法添加访问修饰符。您可以将其更改为public
,然后可以进行更改。要做到这一点,
一种方法:
右键单击导航器或GUI中的jList 。接下来,转到自定义代码,然后将弹出窗口,将默认代码更改为custom属性。
要么:
转到jList属性->单击“代码”选项卡,然后在其中将变量修饰符 更改private
为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();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句