2013-10-15 25 views
1

我有一個MVC應用程序,其中的控制器啓動一個線程,並在其中啓動查看動作源自內部的進度,並調用模式走過去在查看並處理它選擇數據的列表某種程度上來說。使用swing的MVC,如何讓模型請求用戶輸入?

現在,當模型查看數據時,遇到一個或多個他希望用戶由於某種原因確認的條目。應該如何使用MVC來處理?
請注意,控制器可以處理多個視圖,他們中的哪一個應該負責用戶輸入,如何區分它們,...?

回答

2

驗證輸入應儘早在視圖中處理。視圖可以查詢模型以驗證上下文中的條目。作爲具體的example,此InputVerifier覆蓋verify()以確保數字輸入,但它也可能要求模型執行額外的檢查,可能與其他模型屬性進行比較。例如,

@Override 
public boolean verify(JComponent input) { 
    try { 
     value = Double.parseDouble(field.getText()); 
     return model.isValid(value); // also check model 
    } catch (NumberFormatException e) { 
     return false; 
    } 
} 
+0

確定的,但如果它無法直接驗證輸入,在我的情況下,例如驗證發生了大容量輸入值的服務器通過RMI上,這是不可能的第一環通過視圖或控制器中的輸入。 – jb10210

+1

聽起來好像你的「儘可能早的機會」是在提交整個表單之後。您必須要求服務器提供更精細的驗證,或盡力突出未能驗證的字段。 – trashgod

+0

謝謝,發表評論時,我實際上想出了相同的答案:) – jb10210