我怀疑。我不知道在模式MVC中将每个eventlistener插入的位置。将它们插入控制器是否正确,或者更好地直接在视图中插入eventlistener?从视图中,eventlistener可以调用控制器来执行某些操作。
答案 0 :(得分:1)
您的事件侦听器应位于控制器中。控制器拥有视图的实例,您的视图具有公共方法来设置GUI控件的事件侦听器(JTextField等)。
示例:您有一个名为JButton
的{{1}}控件的视图,并且您希望在有人与该按钮进行交互时进行监听。
查看强>
buttonSubmit
<强>控制器强>
public void addSubmitButtonListener(ActionListener listener) {
buttonSubmit.addActionListener(listener);
}
public void run() {
view.addSubmitButtonListener( new SubmitButtonListener() );
}
class SubmitButtonListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent evt) {
// What happens after someone interacts with the button goes in here.
}
}
类作为内部类直接进入控制器。