2016-04-13 10 views
0

私はguiで基本的なmvcパターンを扱っています。このコードにはJComboBoxが含まれています。 jcomboboxをクリックしてここから文字列項目を選択すると、空のラベルが特定の文字列を埋めるでしょう。私はコントローラクラスをどのようにすべきですか?mvcパターン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です:
ビューが更新をモデル化するために反応し (Observerパターン)
コントローラが見るに反応(オブザーバーパターン)
コントローラアップデートモデル

コントローラはそれ自身をSchoolViewに登録し、イベントでは2番目のビューコンポーネントを更新します。 以下の擬似コードを参照してください。

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); 
    } 
} 
関連する問題