Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java mvc模式gui actionlistener类_Java_User Interface_Model View Controller - Fatal编程技术网

Java mvc模式gui actionlistener类

Java mvc模式gui actionlistener类,java,user-interface,model-view-controller,Java,User Interface,Model View Controller,我正在使用gui开发一个基本的mvc模式。此代码包括JComboBox。单击jcombobox并从此处选择字符串项时,空标签将填充特定字符串。我该如何学习控制器课程 这是我的Gui课程 public class SchoolView extends JPanel { private JTextField selectedStandName; private JComboBox<String> stands; private JLabel standLabel;

我正在使用gui开发一个基本的mvc模式。此代码包括JComboBox。单击jcombobox并从此处选择字符串项时,空标签将填充特定字符串。我该如何学习控制器课程

这是我的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);
    }
}
考虑到:
视图对模型更新作出反应(观察者模式)
控制器对视图作出反应(观察者模式)
控制器更新模型

然后,控制器将自己订阅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);
    }
}
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);
    }
}