添加/删除Swing jList(使用Netbeans GUI构建器构建)
问题描述:
我知道如何将元素添加到jList的问题已被问到。然而...这与我使用NetBeans GUI构建器有点不同。它将我的两个列表实例化为AbstractListModels。然后,我似乎无法将一个元素从一个列表添加到另一个列表,然后从第一个列表中删除该元素。添加/删除Swing jList(使用Netbeans GUI构建器构建)
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());
}
答
- 不要使用NetBeans表单编辑器或
- 不要预先填充值模型中,
initComponent
方法之后做到这一点,并使用DefaultListModel
或 - 使用“代码”选项在属性表编辑器中将自己的代码注入到创建过程中或
- 单击...按钮在“模型”属性中,从“Set ... model property using ...”中选择“Custom code”组合框并注入你自己的代码,创建自己的
ListModel
,可能使用DefaultListModel
定义自己的模型,它支持动态更新的基本过程是一样的,无论您是否手动或通过NetBeans中创建的JList
的,你只需要决定注入代码的最佳位置
1-不要使用Netbeans表单编辑器或者2-不要使用值预填充模型,在initComponent方法之后执行并使用DefaultListModel – MadProgrammer
3-使用“代码”选项将自己的代码注入创建过程; 4-在“model”属性中单击“...”按钮,从“Set ... model property”中使用“combobox”选择“Custom code”并注入自己的代码 – MadProgrammer