2015-04-28 21 views
0

這是我第一次嘗試MVC設計模式,我試圖弄清楚我的控制器類是如何分辨的,何時按下了不同的按鈕,以及它如何能夠通過它來模擬我的MVC偵聽器如何在不同的按鈕之間進行區分

public void addController(ActionListener controller){ 
    System.out.println("View  : adding controller"); 
    btnGo.addActionListener(controller); 
    btnBack.addActionListener(controller); 
} 

這就是我如何將其發送到控制器:

public void actionPerformed(java.awt.event.ActionEvent e){ 
    System.out.println("Controller: acting on Model"); 
    model.actionGo(); 
} 

我只設法能夠執行一個動作。

回答

1

如果聽者情況下不同的按鈕等,您可以使用

public void actionPerformed(ActionEvent e) { 
    if (e.getSource() == btnGo){ 
     //perform action when btnGo clicked 
    } 
    if (e.getSource() == btnBack){ 
     //perform action when btnBack clicked 
    } 
} 
+0

你不應該使用'equals'而不是'=='? – meskobalazs

+0

這是一種高效而有效的方式嗎?這是MVC的標準嗎? –

+0

如果你有很多檢查,那麼'switch'可能會更快,但否則這是一個完美的解決方案。 – meskobalazs

0

你可以給我們在環境而言,一些額外的信息? 例如我使用的彈簧,我可以做這樣的事情:

@RequestMapping(value = "/updateAcerAccount", method = RequestMethod.POST) 
    public String updateAcerUser(@ModelAttribute("userModel") UserViewBean bean, @RequestParam(required = false) String submitType, HttpServletRequest request, Model model) { 
    if (submitType != null && "extend".equals(submitType)) 
    { 
     // do something on extend 
     return "targetPage"; 
    } 
    else { 
     //dosomething else on submit 
     return "targetPage2"; 
    } 
    } 

與submittype被關聯到一個HTML頁面這兩個按鈕..

<button type="submit" class="btn btn-danger" name="submitType" id="saveUser" value="extend">Resend Link</button> 
    <button type="submit" class="btn btn-success" name="submitType" id="saveUser" value="submit">Submit Decision</button> 

因此給我們一些情況下,這是一個webapp,一個「桌面」應用程序?你用什麼技術? ..

最壞的情況下,你可以使用基於該呼叫的「鼻祖」的方法分局辦理,但真的..這不是什麼我的過於...的粉絲

+0

它是一個桌面應用程序 –

+0

然後與Murat K.解決方案.. 這是在桌面應用程序環境中的聲音.. – witchedwiz

相關問題