2016-04-13 3 views
0

Я работаю с базовым шаблоном mvc с gui. Этот код включает JComboBox. Когда вы нажимаете jcombobox и выбираете строковый элемент, пустая метка заполняет определенную строку. Как я должен делать свой контроллер класса?mvc pattern gui actionlistener class

Это мой Gui класс

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); 
    } 
} 

Это мой контроллер класса

public class SchoolController { 
    public SchoolController(){} 
} 

ответ

0

Учитывая MVC relationship:
View реагирует на модель обновления (шаблон Observer)
контроллер реагирует на вид (образец наблюдателя)
Контроллер обновленный Модель

Затем ваш контроллер подпишет себя в SchoolView, и на мероприятии будет обновлен второй компонент представления. См. Ниже псевдо-код:

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); 
    } 
}