1.原理
原理非常简单:就是一个JLabel和JPanel。Jlabel显示标题文字以及标明控件当前是处于展开还是折叠状态的图片;而JPanel主要就一个作用——承载控件的容器。JLabel通过响应鼠标事件来控制JPanel是否显示。这样就可以达到折叠或展开的效果。
2.代码
public class JShrinkablePanel extends JPanel {
private JLabellabel;
private Stringtitle ="";
private JPanelcontentPanel =null;
private boolean isExpanded =true;
private JListlist =new JList();
private IconiconExpand =null;
private IconiconCollapse =null;
public JShrinkablePanel(String title, JPanel contentPanel) {
super();
this.title = title;
this.contentPanel = contentPanel;
initComponents();
initComponentsStatus();
initLayout();
initResources();
unRegisterEvents();
registerEvents();
}
private void initComponents() {
this.label =n