2013-10-15 27 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