CardLayout使用
相对于BoxLayout,GridBugLayut等常用的Swing layout,CardLayout是特殊的,前者是一个容器内布置组件,而后者是在一个容器内放置很多页面(但一个时间只用显示一个)。
比如需要制作Step by Step的桌面程序,使用CardLayout就非常方便快捷。下面用代码说明:
JPanel innerPanel=new JPanel(new CardLayout());// 对容器innerPanel设置为CardLayout // 用于初始化页面和显示页面的一些字符串常量 private static final String WELCOME="welcome"; private static final String URL="url"; private static final String COUNT="count"; // 把欢迎页加入innerPanel,WelcomePage继承自JPanel,下类同 welcomePage=new WelcomePage("/welcome.jpg"); innerPanel.add(welcomePage,WELCOME); // 把地址页加入innerPanel urlPage=new UrlPage(); innerPanel.add(urlPage,URL); // 把数目页加入innerPanel countPage=new CountPage(); innerPanel.add(countPage,COUNT); 需要显示某个页面的话可以用下面的函数,pageName取值就是前面定义的"welcome","url","count"等。 // 显示一个页面 public void showPage(String pageName){ CardLayout c=(CardLayout)(innerPanel.getLayout()); c.show(innerPanel, pageName); }
每当一个页面被显示出来,其它页面就被遮挡了。要是不采用CardLayout而自己编码,要多花些工夫.