Java 从枚举填充 Swing JComboBox

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/1459069/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-12 12:29:35  来源:igfitidea点击:

Populating Swing JComboBox from Enum

javaswingenumsjcombobox

提问by mhansen

I would like to populate a java.swing JComboBoxwith values from an Enum.

我想java.swing JComboBox用来自Enum.

e.g.

例如

public enum Mood { HAPPY, SAD, AWESOME; }

and have these three values populate a readonly JComboBox.

并让这三个值填充 readonly JComboBox

Thanks!

谢谢!

采纳答案by Pierre

try:

尝试:

new JComboBox(Mood.values());

回答by John Doe

The solution proposed by @Pierre is good. Usually you use a DefaultComboBoxModel or a ComboBoxModelor bindings to the ComboBoxModel for more complex stuff.

@Pierre 提出的解决方案很好。通常你使用 DefaultComboBoxModel 或ComboBoxModel或绑定到 ComboBoxModel 来处理更复杂的事情。

By default a JComboBox is not editable.

默认情况下,JComboBox 不可编辑。

回答by Andrii Nemchenko

If you don't want to (or can't) change initialization with default constructor, then you can use setModel()method:

如果您不想(或不能)使用默认构造函数更改初始化,则可以使用setModel()方法:

JComboBox<Mood> comboBox = new JComboBox<>();
comboBox.setModel(new DefaultComboBoxModel<>(Mood.values()));

回答by M. Hamdi

This can also be achieved using only the default constructor and without using setModel()method:

这也可以仅使用默认构造函数而不使用setModel()方法来实现:

JComboBox<Mood> comboBox_mood = new JComboBox<>();