【发布时间】:2015-06-16 14:32:35
【问题描述】:
我浏览了大量关于如何将 GUI 与 Java 中的其他程序逻辑分开的文章和(imo 太复杂)示例,老实说,我仍然不知道。
有人可以告诉我如何在这个简单的示例中做到这一点,只需一个按钮吗?
假设 Window 类中有一个按钮:
JButton firstButton = new JButton("My first button");
btnCreateProject.setBounds(100, 100, 80, 30);
frame.getContentPane().add(firstButton);
假设这个按钮将调用 Employee 类的构造函数。所以,我可以这样做:
JButton firstButton = new JButton("My first button");
firstButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
.....constructor calling, and rest of the code....
}
});
btnCreateProject.setBounds(100, 100, 80, 30);
frame.getContentPane().add(firstButton);
但这正是我不想要的。我希望我的 Window 类只是纯 GUI,带有按钮、单选框和其他东西,以及它的属性。而已。我想将所有侦听器放在另一个类中,比如说 Controller,然后从这个类中调用所有需要的方法。
谁能给我一个例子来说明如何使用这个简单的按钮来做到这一点?非常感谢。
【问题讨论】:
-
不要将监听器实现为匿名内部类。完全按照你说的去做。喜欢stackoverflow.com/a/4985539/2055998
-
看起来你正在创建一个 Swing 应用程序,所以this thread 应该提供一些关于正确分离关注点的想法。
-
@TinoArts 只是想知道您是否使用过 angularJS ?
-
另外,分层架构的一个重要组成部分是dependency injection。基本上这意味着您不应该在控制器/GUI 类中实例化模型或服务。
标签: java user-interface model-view-controller controller