gpt4 book ai didi

java - 添加/删除 Swing jList(使用 Netbeans GUI 构建器构建)

转载 作者:行者123 更新时间:2023-12-02 12:31:05 25 4
gpt4 key购买 nike

我知道有人问过如何向 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());
}

最佳答案

  1. 不要使用 Netbeans 表单编辑器或
  2. 不要在模型中预先填充值,应在 initComponent 方法之后执行此操作,并使用 DefaultListModel
  3. 使用属性表编辑器上的“代码”选项将您自己的代码注入(inject)到创建过程中,或者
  4. 单击“模型”属性中的 ... 按钮,从“设置...模型属性使用”组合框中选择“自定义代码”并注入(inject)您自己的代码,创建您自己的 ListModel,可能使用 DefaultListModel

无论您是手动创建 JList 还是通过 Netbeans 创建 JList,定义支持动态更新的模型的基本过程都是相同的,您只需要决定注入(inject)的最佳位置即可你的代码

关于java - 添加/删除 Swing jList(使用 Netbeans GUI 构建器构建),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45292439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com