【问题标题】:Using MVC/MVP for Swing UI? [duplicate]Swing UI 使用 MVC/MVP? [复制]
【发布时间】:2014-07-07 20:32:56
【问题描述】:

到目前为止,我已经使用了一些 java swing 代码,所有内容都在一个类中。 我想要设计和开发更好的 UI 应用程序。尝试将 MVP/MVC 用于 Swing UI,但在任何地方都没有找到任何具体示例。

我想开发带有提交按钮的 Swing UI 表单。即这个代表用户表单的主面板包含三个面板: - 带有组合框和文本字段的标题面板。 - 带有表格窗格的中心面板。 - 带有一些组合框和文本字段的结束面板。

所以基本上我已经编写了 4 个没有动作侦听器的 UI 类,一个用于主面板,三个用于标题、中心和端面板。执行主面板显示所有组件。

我想向组合框提供运行时数据,当用户提交时,我应该从组合框和其他字段中获取选定的值。 我应该如何使用 MVP/MVC 进行设计。任何人都可以提供一些解释或给我任何参考或示例的链接吗?

【问题讨论】:

标签: java swing


【解决方案1】:

看看这个:Java - Learning MVC

MVC 模式需要这 3 个类。

  • theModel:处理数据
  • 视图:处理 GUI
  • 控制器:处理监听器。

您可能需要先对观察者模式有所了解。

设计可能如下:

public class Test {

    public Test(){
       MyModel      model      = new MyModel();
       MyController controller = new MyController(model);
    }
}

控制器类

public class MyController implements ActionListener {
    private MyView view;
    private MyModel model;

    MyController(MyModel theModel){
        model = theModel;
        view = new MyView(this);
        model.register(view);
    }

    // implement actionPerformed here
}

查看类

public class View implements Observer {
    private MyController controller;

    public View(){
         // Swing Components here
         JButton button = new JButton();
         button.addActionListener(controller);
         add(button);
    }
    // notifyObserver method implementation
}

模型类

public class MyModel extends Observable {
    // handle state/data changes here

}

【讨论】:

    猜你喜欢
    • 2011-03-14
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    • 1970-01-01
    • 2010-11-15
    • 2020-08-26
    • 2011-09-10
    • 2012-05-03
    相关资源
    最近更新 更多