0

我打算使用面板作为视图控制器容器。

//variables
CustomerSearch cs;
CardLayout cl;
string BUTTONPANEL="Page1";

变量的设置

private void InitViews(){
    cl = new CardLayout(); 

    cs = new CustomerSearch();
    cl.addLayoutComponent(cs, BUTTONPANEL);
    ViewPanel.setLayout(cl);

    //cl.show(ViewPanel, BUTTONPANEL);   
}

用于更新视图的按钮单击:

    private void SearchBtnActionPerformed(java.awt.event.ActionEvent evt) {                                          

    cl.show(ViewPanel, BUTTONPANEL);
    cs.repaint();
    ViewPanel.repaint();
}  

但是当事件被触发时,什么都没有发生?谁能告诉我我做错了什么?

4

1 回答 1

0

通常,您不会将组件添加到布局中。它们被添加到使用布局的父组件中:

    private void initViews() {
        cl = new CardLayout(); 
        viewPanel.setLayout(cl);

        cs = new CustomerSearch();
        viewPanel.add(cs, BUTTONPANEL);
    }

本教程应该会有所帮助:如何使用 CardLayout

变量、字段和方法以小写开头命名也是惯例。类和接口以大写字母开头。


在这种情况下不需要 编辑重绘,以下监听器应该这样做:

    private void SearchBtnActionPerformed(java.awt.event.ActionEvent evt) {                                          
        cl.show(viewPanel, BUTTONPANEL);
    }  
于 2013-11-13T13:15:43.887 回答