2016-04-13 43 views
0

GUI ile temel bir mvc deseni çalışıyorum. Bu kod JComboBox içerir. Jcombobox'ı tıklatıp buradan bir dize öğesi seçerken, boş etiket belirli bir dizeyi dolduracaktır. Denetleyici Sınıfımı nasıl yapmalıyım?mvc pattern gui actionlistener sınıfı

Bu benim Gui sınıf

public class SchoolView extends JPanel { 
    private JTextField selectedStandName; 
    private JComboBox<String> stands; 
    private JLabel standLabel; 
    String[] items = { "Rainbow Pots", "BookWorm's Place","Caffein Charger","Jedi's Place"}; 

    public SchoolView() { 
     stands = new JComboBox<String>(items); 
     add(stands); 
     addStandLabel(); 
     addStandInfoLabel(); 
     addStandInfoField(); 
    } 

    private void addStandLabel() { 
     standLabel = new JLabel("Stands"); 
     add(standLabel); 
    } 

    private void addStandInfoLabel() { 
     JLabel selectedStandInfo = new JLabel("Stand Info"); 
     add(selectedStandInfo); 
    } 
    private void addStandInfoField() { 
     SelectedStandName = new JTextField(); 
     add(selectedStandName); 
     selectedStandName.setColumns(20); 
    } 
} 

olan bu Verilen benim denetleyicisi sınıf

public class SchoolController { 
    public SchoolController(){} 
} 

cevap

0

MVC relationship geçerli:
güncelleştirmeleri görüntüle modellemek tepki (Gözlemci deseni)
Kontrolör görüntüle tepki (gözlemci deseni)
Denetleyici güncellendi Model

Ardından, kontrol cihazınız kendini SchoolView'e abone olacak ve olayda ikinci görünüm bileşenini güncelleyecektir. Aşağıdaki yalancı koduna bakın:

public class SchoolController implements OnSelectListener { 
    JTextField viewComponent; 
    public SchoolController(schoolView, viewComponent){ 
     schoolView.onSelect(this) 
     this.viewComponent= viewComponent; 
    } 

    @Override 
    public void onSelect(selectedItem) { 
     viewComponent.set(selectedItem); 
    } 
}