1
我有疑問。我不知道在哪裏插入模式MVC中的每個eventlistener。將它們插入控制器還是更好地直接在視圖中插入eventlistener是正確的?從視圖eventlistener可以調用控制器來執行某些操作。Model-view-control and swing gui
我有疑問。我不知道在哪裏插入模式MVC中的每個eventlistener。將它們插入控制器還是更好地直接在視圖中插入eventlistener是正確的?從視圖eventlistener可以調用控制器來執行某些操作。Model-view-control and swing gui
您的事件監聽器應該位於控制器中。控制器保存視圖的實例,並且您的視圖具有公共方法來設置GUI控件的事件偵聽器(JTextField等)。
示例:您有一個視圖,該視圖具有一個名爲buttonSubmit
的JButton
控件,並且您想要監聽某人與該按鈕進行交互的情況。
查看
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.
}
}
即SubmitButtonListener
類直接進入控制器作爲一個內部類。
更好的控制器,從視圖eventlistener可以調用控制器,但有一些混合錯誤的概率。 – JavaFan