gpt4 book ai didi

java - 从 Hashmap 填充 JList 并检索键

转载 作者:行者123 更新时间:2023-12-02 06:55:13 26 4
gpt4 key购买 nike

如何从 HashMap 填充 JList 但只显示列表中的值?

我正在使用以下代码填充列表。当我启动应用程序时,我会看到 {1=Value1}、{2=Value2} 等列表项。我只想显示值。

我使用 HashMap 是因为稍后当我提交表单时,JList 将使用为我的 Insert 方法选择的值中的键,并且我从这里的其他示例中了解到这是通过 hashsmap 完成的。

public void populateListwithCategories(final JList list) {
try {
DefaultListModel listModel = new DefaultListModel();
List<AdvertisementCategory> advertisementCategories = advertisementCategoryProvider.getAdvertisementCategories();
for (AdvertisementCategory advertisementCategory : advertisementCategories) {
int id = advertisementCategory.getId();
String name = advertisementCategory.getName();
advertisementCategory.advertisementMap.put(id, name);
listModel.addElement(advertisementCategory.advertisementMap);
}
list.setModel(listModel);
} catch (MalformedURLException ex) {
Logger.getLogger(AdvertisementCategoryController.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(AdvertisementCategoryController.class.getName()).log(Level.SEVERE, null, ex);
}
}

这是我的 AdvertisingCategory 模型,我希望将数据导出到 HashMap 。

public class AdvertisementCategory {

private int id;
private String name, description;
public List<AdvertisementCategory> advertisementCategories;

public Map<Object, String> advertisementMap = new HashMap<>();

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getDescription() {
return description;
}

public void setDescription(String description) {
this.description = description;
}

public AdvertisementCategory(int id, String name, String description) {
this.id = id;
this.name = name;
this.description = description;
}

public AdvertisementCategory(String name, String description) {
this.name = name;
this.description = description;
}

public AdvertisementCategory() {

}

public AdvertisementCategory(int id, String name) {
this.id = id;
this.name = name;
}

}

最佳答案

您正以某种方式尝试为一个不存在的问题实现一个相当复杂的解决方案。

使用 Swing 的 MVC 原理,您可以将 AdvertisingCategory 直接添加到列表模型中,并实现一个 ListCellRenderer 以从 AdvertisingCategory 实例中提取显示值,该值应显示在 JList 本身中。然后,在 JList 上调用 getSelectedValue() 将为您提供 AdvertisingCategory 实例,并且您可以访问其所有内容。

关于java - 从 Hashmap 填充 JList 并检索键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17467498/

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