Normally you do not add the components to the layout. They are added to the parent component, the one using the layout:
private void initViews() {
cl = new CardLayout();
viewPanel.setLayout(cl);
cs = new CustomerSearch();
viewPanel.add(cs, BUTTONPANEL);
}
This tutorial should help: How to Use CardLayout
It also is convention that variables, fields and methods are named starting with a lowercase. Classes and Interfaces start with uppercase.
EDIT
repaint is not needed in this case, the following listener should do:
private void SearchBtnActionPerformed(java.awt.event.ActionEvent evt) {
cl.show(viewPanel, BUTTONPANEL);
}