gpt4 book ai didi

java - MVC,并向其他组件中包含的 JPanel 添加监听器

转载 作者:行者123 更新时间:2023-11-30 06:56:00 25 4
gpt4 key购买 nike

我正在尝试在我的程序中实现 MVC,这是当前我的 Controller 类:

public class Controller {

private DatabaseModel model;
private View view;

public Controller(View view, DatabaseModel model){
this.model = model;
this.view = view;

this.view.getMainPanel().getCandidateForm().
addSubmitListener(new CandidateListener());
}

class CandidateListener implements ActionListener{
public void actionPerformed(ActionEvent e){
System.out.println("ACTION");
}
}
}

因为我的 View 包含几个私有(private)子 JPanel - MainFrame 和 CandidateForm - 后者位于按钮所在的位置,所以在第 10 行,我将 CandidateForm 面板传回到 Controller ,然后调用它的“addSubmitListener()”方法,该方法将自定义监听器添加到按钮。

这看起来是添加监听器的正确方法吗?我应该在 Controller 中以这种方式定义 CandidateListener 吗?或者也许在子 JPanel 中创建一个匿名类?

任何有关 MVC 和听众最佳实践的其他建议也将不胜感激!

最佳答案

如上所述here ,“并非每个交互都需要通过应用程序的 Controller 。”您的方法没有错误,但扩展性可能较差。考虑使用Action按照建议封装功能 here 。在数据库上下文中,这个简单的example创建一个 Action,将查询结果选项卡添加到 JTabbedPane。这个更详细example使用 SwingWorker 在后台查询数据库;相应的Action可能会实例化worker并execute()它。

关于java - MVC,并向其他组件中包含的 JPanel 添加监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41805074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com