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而自己编码,要多花些工夫.
分类:
Java.Swing
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?