我打算将面板用作视图控制器容器。
//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();
}
但是当事件被解雇时,什么都没发生? 谁能告诉我我做错了什么?
答案 0 :(得分:0)
通常,您不会将组件添加到布局中。它们被添加到父组件,即使用布局的组件:
private void initViews() {
cl = new CardLayout();
viewPanel.setLayout(cl);
cs = new CustomerSearch();
viewPanel.add(cs, BUTTONPANEL);
}
本教程应该有所帮助:How to Use CardLayout
通常,变量,字段和方法以小写字母开头。类和接口以大写字母开头。
修改强>
在这种情况下不需要重绘,以下监听器应该这样做:
private void SearchBtnActionPerformed(java.awt.event.ActionEvent evt) {
cl.show(viewPanel, BUTTONPANEL);
}