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
Populating Swing JComboBox from Enum
提问by mhansen
I would like to populate a java.swing JComboBox
with 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<>();