亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

是否有替代方法來檢查 javafx 應用程序中的許多空白字段?

是否有替代方法來檢查 javafx 應用程序中的許多空白字段?

梵蒂岡之花 2023-09-20 17:02:31
我是java(以及一般編程)的新手,并且正在通過將基本電子表格轉換為javafx應用程序來學習。為此,我使用:Java & JavaFX 12 FXML & GUI 的 scenebuilder大約有 10 個輸入字段,并且它們不能為空(應用程序崩潰,因為 getText 似乎在空白字段上失敗)。我編寫了堆疊的 if 語句來檢查空白字段,然后打印錯誤消息(如果有),并返回以停止進程而不會使應用程序崩潰。switch 語句似乎并不比 if 語句好多少。有沒有一種方法可以用更少的代碼行來完成它?
查看完整描述

1 回答

?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

您需要以某種方式將一個字段與一個字符串關聯起來。這需要您為每個TextFields 添加一些代碼,無論是userData在 fxml 中設置 ,還是將TextField和的組合存儲String在控制器initialize方法中合適的數據結構中。


這樣的數據結構可以是LinkedHashMap:


private final Map<TextField, String> fieldStrings = new LinkedHashMap<>();


@FXML

private void initialize() {

    fieldStrings.put(desShear, "Design shear");

    fieldStrings.put(boltSize, "Bolt size");

    fieldStrings.put(tensStrengthBolt, "Bolt strength");

    fieldStrings.put(noBolts, "Number of bolts");

    fieldStrings.put(shearPlanes, "Number of shear planes");

    fieldStrings.put(edgeDist, "Edge distance");

    fieldStrings.put(plyThick, "Ply thickness");

    fieldStrings.put(tensStrengthPly, "Ply strength");

    fieldStrings.put(phiBolt, "Bolt phi factor");

    fieldStrings.put(phiPly, "Ply phi factor");

}


private double getFieldValue(TextField field) {

    return Double.parseDouble(field.getText());

}


public void run(ActionEvent clickRun) {


    String errorField = fieldStrings.entrySet().stream()

                                     .filter(entry -> entry.getKey().getText().isBlank())

                                     .map(Map.Entry::getValue)

                                     .findFirst().orElse(null);


    if (errorField != null) {

        outputMsg.setText(errorField + " field is blank");

        return;

    }


    //Get field values

    double desSHEAR = getFieldValue(desShear);

    double boltSIZE = getFieldValue(boltSize);

    double tensStengthBOLT = getFieldValue(tensStrengthBolt);

    double noBOLTS = getFieldValue(noBolts);

    double shearPLANES = getFieldValue(shearPlanes);

    double edgeDIST = getFieldValue(edgeDist);

    double plyTHICK = getFieldValue(plyThick);

    double tensStrengthPLY = getFieldValue(tensStrengthPly);

    double phiBOLT = getFieldValue(phiBolt);

    double phiPLY = getFieldValue(phiPly);



    //Bolt shear calculation



}


查看完整回答
反對 回復 2023-09-20
  • 1 回答
  • 0 關注
  • 97 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號