在JAVA中将项目设置为组合框

时间:2013-09-25 11:57:17

标签: java swing combobox

我有一个包含Small,Medium和Large选项的组合框。这些是属性,并希望应用...

字符串变量Pattern的值为SmallMediumLarge,并且它会添加到组合框Barsize

在运行这个java文件时,如果我选择了Medium选项,它就会被选中并且属性已经应用但是如果我再次运行它会转到组合框索引中的小选项。

我如何保存.... ??? 我需要一个选项,我在索引中选择了直到下一个更改才会...

编码是........

propertiesPanel.add(new JLabel("Barsize"))
BarField = new JComboBox(pattern)
propertiesPanel.add(BarField)

此处模式的值为SmallMediumLarge ......

1 个答案:

答案 0 :(得分:0)

  

在运行这个java文件的时候,如果我选择Medium选项就可以了   已经选择并且属性已经应用但是如果我再次运行则会进行   到组合框索引中的小选项。

你需要一些全球的地方(我想在Singleton pattern中)来保持这个选定的大小,所以当你再次显示这个窗口时,你可以在你的组合框中设置这个值。

这样的事情:

public class SizeProperties {

    private static SizeProperties _instance;
    private Sizes _selectedSize;

    public enum Sizes{SMALL, MEDIUM, LARGE}

    private SizeProperties(){
        _selectedSize = Sizes.SMALL;
    }

    public static SizeProperties getInstance(){
        if(_instance == null){
            _instance = new SizeProperties();
        }
        return _instance;
    }

    public Sizes getSelectedSize(){
        return _selectedSize;
    }

    public void setSelectedSize(Sizes size){
        _selectedSize = size;
    }
}

在对话框中,您可以按如下方式填充组合框:

JComboBox barField = new JComboBox();
for(SizeProperties.Sizes s : SizeProperties.Sizes.values()){
    barField.addItem(s);
}
barField.setSelectedItem(SizeProperties.getInstance().getSelectedSize());

最后在单件类中保存选定的大小:

SizeProperties.Sizes selectedSize = (SizeProperties.Sizes) barField.getSelectedItem();
SizeProperties.getInstance().setSelectedSize(selectedSize);