【发布时间】:2017-12-30 17:44:07
【问题描述】:
我知道有人问过如何将元素添加到 jList 的问题。然而......这有点不同,因为我一直在使用 NetBeans GUI builder。它将我的两个列表实例化为 AbstractListModels。然后我似乎无法将一个列表中的元素添加到另一个列表中,然后从第一个列表中删除该元素。
JList:
colors1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
colors1.setModel(new javax.swing.AbstractListModel<String>() {
String[] strings = { "red", "yellow", "green", "blue", " ", " ", " ", " ", " " };
public int getSize() { return strings.length; }
public String getElementAt(int i) { return strings[i]; }
});
jScrollPane1.setViewportView(colors1);
colors2.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
colors2.setModel(new javax.swing.AbstractListModel<String>() {
String[] strings = { "black", "white", "gray", "brown", " ", " ", " " };
public int getSize() { return strings.length; }
public String getElementAt(int i) { return strings[i]; }
});
jScrollPane2.setViewportView(colors2);
我尝试转换为 defaultlistmodel 并添加一个元素(尚未删除)。
private void addColorsActionPerformed(java.awt.event.ActionEvent evt) {
DefaultListModel list1 = (DefaultListModel) colors1.getModel();
DefaultListModel list2 = (DefaultListModel) colors2.getModel();
list2.addElement( colors1.getSelectedValue());
//Haven't actually attempted this yet but if I had would look like.
//list1.removeElement(colors1.getSelectedValue());
}
【问题讨论】:
-
1- 不要使用 Netbeans 表单编辑器或 2- 不要用值预先填充模型,在
initComponent方法之后执行并使用DefaultListModel -
3- 使用“代码”选项将自己的代码注入到创建过程中; 4-单击“模型”属性中的“...”按钮,从“使用设置...模型属性”组合框中选择“自定义代码”并注入您自己的代码
标签: java swing user-interface netbeans jlist