9.3.5 卡片布局管理器
卡片布局(CardLayout)管理器能够帮助用户处理两个以至更多的成员共享同一显示空间,它把容器分成许多层,每层的显示空间占据整个容器的大小,但是每层只允许放置一个组件,当然每层都可以利用Panel来实现复杂的用户界面。CardLayout就像一副叠得整整齐齐的扑克牌一样,有54张牌,但是只能看见最上面的一张牌,每一张牌就相当于布局管理器中的每一层,其实现过程如下。
首先,定义面板,为各个面板设置不同的布局,并根据需要在每个面板中放置组件:
panelOne.setLayout(new FlowLayout());
panelTwo.setLayout(new GridLayout(2,1));
再设置主面板:
CardLayout card=new CardLayout();
panelMain.setLayout(card);
下一步将开始准备好的面板添加到主面板:
add()方法带有两个参数,第一个为String类型用来表示面板标题,第二个为Panel对象名称。
完成以上步骤以后,必须给用户提供在卡片之间进行选择的方法,一个常用的方法是每张卡片都包含一个按钮,通常用来控制显示哪张面板,actionListener被添加到按钮,actionPerformed()方法可定义显示哪张卡片:
【例9-6】 卡片布局的范例。
程序运行结果如图9-7所示。
图9-7 CardLayout范例
分析与思考:cardLayout.next(contentPanel)是next按钮的事件,单击该按钮,在contentPanel中的按钮就依次显示了。
模仿例9-6:给JPanel中添加若干幅的图片,就可以变成一个简单的图片浏览器了,请读者试一试。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。