gpt4 book ai didi

java - 在 jcombobox 中使用 linkedhashset 吗?

转载 作者:行者123 更新时间:2023-12-01 18:38:44 25 4
gpt4 key购买 nike

我正在尝试使用 MVC 设计模式创建一个程序。在我的模型中,我创建了一组字符串。字符串只是大约 45 个语言环境的集合。

在我看来,我正在创建一个 JComboBox。我想按照 45 个唯一语言环境的顺序使用 Set,因此我使用 LinkedHashSet。

我在尝试将语言环境传递到 JComboBox 时遇到问题,并且有一些事情我不确定。

编辑:我想知道的主要事情是如何将我的 Set 放入 JComboBox 中。以下是我在写这篇文章时想到的其他几个问题。如果您愿意,请随时回答!

  1. 我应该使用 Set,它是正确的集合吗?
  2. 我应该使用 LinkedHashSet,它是正确的实现吗?
  3. 我是否正确使用了组合框?
  4. 有什么建议等吗?
  5. 我对数据结构了解不多,有什么好的资源吗?

这是我已经使用的代码:

查看

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;
}

最佳答案

我相信你可以做这样的事情:

m_selectLocale = new JComboBox(new DefaultComboBoxModel(new Vector<String>(getLocales())));

(换句话说,通过将有序集传递给 Vector 的“从集合中添加”构造函数来创建一个新的 Vector,然后使用它来创建您的 ComboBoxModel)

更新:查看 Javadoc,看起来您可以跳过一个步骤:

m_selectLocale = new JComboBox(new Vector<String>(getLocales()));

我相信,这会隐式地为您创建一个新的 ComboBoxModel。

FWIW,我认为如果您想保留选择的插入顺序,OrderedSet(如 LinkedHashSet)是一个不错的选择。例如,如果您想在 ComboBox 中拥有按字母顺序排列的选项列表,您可能需要使用使用集合成员自然排序的 OrderedSet,例如 TreeSet。

关于java - 在 jcombobox 中使用 linkedhashset 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20776480/

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