【问题标题】:MVC using swing, how to let the model ask for user input?MVC使用swing,如何让模型要求用户输入?
【发布时间】:2013-10-23 05:18:18
【问题描述】:

我有一个 MVC 应用程序,其中 Controller 启动一个线程,并在其中启动 View 内的进度条,该操作发起并调用 Model浏览在 View 中选择的数据列表并以某种方式对其进行处理。

现在,当模型检查数据时,它会遇到一个或多个他希望用户出于某种原因确认的条目。这应该如何使用 MVC 处理?
注意Controller可以处理多个视图,其中哪个应该负责用户输入,如何区分它们,...?

【问题讨论】:

    标签: java swing model-view-controller


    【解决方案1】:

    应尽早在视图中处理验证输入。视图可以查询模型以验证上下文中的条目。作为一个具体的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;
        }
    }
    

    【讨论】:

    • 好的,但是如果不能直接验证输入怎么办,在我的例子中,验证发生在 RMI 上的服务器上,具有大量输入值,不可能先循环视图或控制器中的输入。
    • 听起来您的“可能的最早机会”是在提交整个表单之后。您要么必须要求服务器提供更细粒度的验证,要么尽最大努力突出显示验证失败的字段。
    • 谢谢,实际上我在发表评论时得出了相同的答案 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-25
    相关资源
    最近更新 更多