簡體   English   中英

Java設計多值方案

[英]Java design for multiple values scenario

我有兩個組合框,如下所示

在此處輸入圖片說明

每當我單擊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());

對於帶有兩個組合框的設計,代碼看起來很簡單。 我的疑問是如果組合框的數量增加怎么辦? 使用上述方法的代碼將有很多行。 解決此問題的設計是什么,如何在這種情況下實現?

您可以具有ComboBoxes的數組或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);
}

從您的方法中可以看出,您想要添加更多的組合框,而您想要在Java中用更少的代碼來處理所有組合框。

您可以選擇實現“數組列表”集合,並在其中存儲多個組合框。 因此,每次都不需要創建新對象,它將變成動態對象。

希望它能消除您的疑問。 如果您尚未清除,請發表評論。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM