1

小、中、大のオプションがあるコンボ ボックスがあります。これらはプロパティであり、適用したい...

文字列変数のPatternSmallは 、MediumLarge、コンボ ボックスに追加されますBarsize

このJavaファイルの実行中にMediumオプションを選択すると、それが選択され、プロパティも適用されましたが、もう一度実行すると、コンボボックスのインデックスの小さいオプションに移動します。

どうすれば保存できますか....??? 次の変更が行われるまで、インデックスで選択したオプションが必要です...

コーディングは…………

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

ここで pattern は、SmallMedium、およびLarge......の値を持ちます。

4

1 に答える 1

0

このJavaファイルの実行中に中オプションを選択すると、それが選択され、プロパティも適用されましたが、もう一度実行すると、コンボボックスのインデックスで小オプションになります。

この選択したサイズを保持するには、グローバルな場所が必要です (シングルトン パターンで考えています)。このウィンドウを再度表示するときに、コンボ ボックスで選択した値を設定できます。

このようなもの:

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);
于 2013-09-25T12:24:24.480 に答える