![](/img/trans.png)
[英]What Java design pattern fits the scenario of adding a user to multiple systems based on csv values?
[英]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.