2016-04-05 13 views
2

MVC kalıbı kullanarak bir uygulama yapıyorum, Bazı durumlarda, görünümden model ve denetleyici oluşturdum ve denetleyicinin görünüm içinde uygun yöntemini çağırdım. Bu bir tasarım meselesi, eğer çözüm olsaydı, bazı modellerimi GUI'den bir tıklama ile çağırdığı için, tüm modellerimi ana bölüme ayıramadım. Burada MVC oluşturma modeli ve denetleyici görünümünden

bir örnek kod şudur:

public class MyView extends JInternalFrame{ 

private JComboBox<String> myList; 
private JButton button; 

public MyView(){ 
    super("MyView", true, // resizable 
      false, // closable 
      false, // maximizable 
      true);// iconifiable 
    setSize(250, 150); 

    setLocation(300,300); 

    myList= new JComboBox<String>(); 

    button= new JButton("Click"); 
    button.addActionListener(new Listener()); 

    JLabel label = new JLabel("Example"); 

    Border lineBorder = BorderFactory.createTitledBorder("Example UI"); 
    JPanel panel= new JPanel(); 
    panel.setBorder(lineBorder); 
    panel.setLayout(new GridLayout(3, 1)); 
    panel.add(label); 
    panel.add(list); 
    panel.add(button); 

    add(panel); 
} 

class Listener implements ActionListener{ 

    @Override 
    public void actionPerformed(ActionEvent actionEvent) { 
     String button = actionEvent.getActionCommand(); 

     if(button==button.getText()){ 
      Model model = new Model(); 
      Controller controller = new Controller (model, MyView.this); 
      controller.doSomething(); 
     } 

    } 
} 
+0

Google'a mi gittiniz? Bunu şu şekilde kontrol edin: http://stackoverflow.com/questions/5217611/the-mvc-pattern-and-swing –

+1

Temel bir google aramadan daha fazlasını yaptım, çok kitap okudum ancak belirli bir çözümü Böyle bir problem Sağladığınız bağlantıya göre, yaptığım şey iyi. MVC modelini anlama konusunda bir sorunum yok, yaptığım şeyin uygun/geleneksel bir tasarım yaklaşımı olup olmadığını öğrenmeye çalışıyorum. – PRCube

+0

Bu konuyla ilgili daha fazlası [here] (http://stackoverflow.com/a/3072979/230513) ve [burada] (http://stackoverflow.com/a/25556585/230513). – trashgod

cevap

0

araştırma bir hafta sonra, ben yaptım yolu gayet sonucuna vardık. Kullanıcı denetleyici ile etkileşime giren görünümle etkileşime girer. Modellerin ve kontrolörlerin nerede ve nasıl oluşturulacağı konusunda bir sözleşme yoktur. Her şey, belirli bir sorun modelinin kullanılmasına bağlıdır. MVC'nin ana prensipleri uygulandığı sürece, özgürsünüz.