【发布时间】:2013-12-25 20:23:56
【问题描述】:
我正在尝试使用 MVC 设计模式创建程序。在我的模型中,我创建了一组字符串。字符串只是大约 45 个语言环境的集合。
在我看来,我正在创建一个 JComboBox。我想按顺序使用 45 个唯一区域设置的集合,所以我使用的是 LinkedHashSet。
我在尝试将语言环境传递给 JComboBox 时遇到问题,并且有几件事我不确定。
编辑:我想知道的主要是如何将我的 Set 放入我的 JComboBox。以下是我在写这篇文章时想到的其他一些问题。如果您愿意,请随时回答他们!
- 我应该使用 Set,它是正确的集合吗?
- 我应该使用 LinkedHashSet,它是正确的实现方式吗?
- 我是否正确使用了组合框?
- 有什么建议吗?
- 我对数据结构了解不多,有什么好的资源吗?
这是我已经在使用的代码:
查看
private JComboBox<String> m_selectLocale = new JComboBox(getLocales());
LinkedHashSet<String> getLocales(){
System.out.println("running");
Set<String> localesSet = m_model.getLocales();
LinkedHashSet<String> locales = new LinkedHashSet<>(localesSet);
return locales;
}
型号
private static Set<String> localeSet = new LinkedHashSet<String>(Arrays.asList("All", "ar-ae", "ar-sa", "cs-cz", "da-dk", "de-at", "de-ch", "de-de", "el-gr", "en-ae", "en-au"));
public Set<String>getLocales(){
return localeSet;
}
【问题讨论】:
-
哎呀,这是一大堆问题。 这个问题你想回答哪一个?
-
对不起,写这个问题时我脑子里突然冒出很多东西。我想知道的主要事情是如何将我的模型中的 Set 放入我的 JComboBox。一旦我的程序运行起来,也许我可以重构最佳实践?
-
“我最想知道的是..” 编辑问题!
-
如果你想使用我认为的实现,你必须自己创建
ComboBoxModel.. -
我不确定您实际上在问什么:我的意思是,根据您自己的用例,在客户端代码中使用 hashSet 完全是您的选择。 JComboBox 已经有一个模型:
DefaultComboBoxModel。如果您正在谈论这个ComboBox模型,那么您可以根据需要实现您的模型。无论哪种情况,哪种实现更好仍然在您的用例中。HashSet不会在维持任何订单时回复答案,TreeSet会但O(log n)对于每个操作和LinkedHashSet虽然它维持订单并没有承诺提供O(1)成本不像HashSet跨度>
标签: java swing jcombobox linkedhashset