0

我有两个组合框,如下所示,

在此处输入图像描述

每当我单击done按钮时,我都会从组合框中获取值并将其存储在如下对象中,

public class comboValues{
private String label1ComboString;
private String label2ComboString;

public String setLabel1Combo(String val){
this.label1ComboString = val;
}

public String setLabel2Combo(String val){
this.label2ComboString = val;
}

public void getLabel1Combo(){
return this.label1ComboString;
}

public void getLabel2Combo(){
return this.label2ComboString;
}
}

在我使用的控制器类中,

        comboValues obj = new comboValues();
        obj.setLabel1Combo(label1ComboBox.getSelectionModel().getSelectedItem());
        obj.setLabel2Combo(label2ComboBox.getSelectionModel().getSelectedItem());

对于具有两个组合框的设计,代码看起来很简单。我的疑问是如果组合框的数量增加怎么办?使用上述方法代码将有很多行。克服这个问题的设计是什么,我如何在这种情况下实现它?

4

2 回答 2

0

您可以拥有一个数组或一个ArrayList组合框。这样您就可以引用任意数量的框。你的班级会变成这样:

public class ComboValues {
    private String[] comboStrings;
    ...
    public void setComboLabel(String label, int comboNum) {
        comboStrings[comboNum] = label;
    }
    public void getComboLabel(int comboNum) {
        return comboStrings[comboNum];
    }
    public void getComboBoxCount() {
        return comboStrings.length;
    }
}

...
String[] labels = ...
for (int i = 0; i < obj.getComboBoxCount(); i++) {
    obj.setComboLabel(labels[i], i);
}
于 2016-08-04T05:21:01.923 回答
-1

我可以从您的方法中看到您想要添加更多组合框,并且您想要在 Java 中做更少的代码来处理所有这些。

您可以选择实现 Array List 集合并在其中存储多个组合框。所以每次你都不需要创建新对象,它会变成动态的。

希望它能消除你的疑惑。如果您还没有清除,请发表评论。

于 2016-08-04T05:14:24.093 回答