通过 netbeans 编辑自动生成的代码
Editing auto generated code by netbeans
使用 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]; }
});
不知道有什么用。我看到了一些与我类似的问题,但我不清楚到底是什么问题以及为什么我不能按预期以正常方式 add/remove 项目!
那是因为当 netbeans 为您生成代码时,它会为变量和方法添加访问修饰符 private
。您可以将它们更改为 public
,这样您就可以进行更改。为此,
一种方法:
在 导航器 或 GUI 中的 jList 上右键单击。接下来,转到自定义代码然后,您将在其中弹出window将默认代码更改为自定义属性.
或:
转到 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();
}
使用 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]; }
});
不知道有什么用。我看到了一些与我类似的问题,但我不清楚到底是什么问题以及为什么我不能按预期以正常方式 add/remove 项目!
那是因为当 netbeans 为您生成代码时,它会为变量和方法添加访问修饰符 private
。您可以将它们更改为 public
,这样您就可以进行更改。为此,
一种方法:
在 导航器 或 GUI 中的 jList 上右键单击。接下来,转到自定义代码然后,您将在其中弹出window将默认代码更改为自定义属性.
或:
转到 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();
}