我知道如何向jList添加元素的问题。然而......这有点不同,因为我一直在使用NetBeans GUI构建器。它将我的两个列表实例化为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());
}
答案 0 :(得分:1)
initComponent
方法之后执行并使用DefaultListModel
或ListModel
定义您自己的模型的基本过程(支持动态更新)保持不变,无论您是手动创建DefaultListModel
还是通过Netbeans,您只需要决定注入代码的最佳位置< / p>