65.9K
CodeProject 正在变化。 阅读更多。
Home

Java 中的滑动面板

starIconstarIconstarIconstarIconstarIcon

5.00/5 (8投票s)

2013年3月21日

CPOL

3分钟阅读

viewsIcon

49431

downloadIcon

2031

Swing 中动画滑动面板。

介绍  

本文的目的是创建一个动画滑动面板,以便在 Swing 应用程序中呈现炫酷的外观。 如果您是 Windows 用户,那么您一定熟悉这种面板。 您将能够分组/取消分组滑动窗格。 图 1 显示了一个分组滑动窗格,一次只能有一个面板处于展开模式。 在图 2 中,有多个面板处于展开模式。 此外,您还可以设置默认情况下哪个面板可以处于展开模式。 让我们开始吧。

   

                               图 1                                                                       图 2


理解类

解压缩 zip 文件后,您将获得以下类

  1. SlideAnimator.java: 此类负责动画效果。
  2. SlideContainer.java: 此类保存需要滑动的面板。
  3. TitlePanel.java: 标题面板包含标题名称以及其他信息,例如图标、切换按钮图标等。
  4. SlidingPanel.java: 封装标题面板和滑动面板。
  5. SlidePaneFactory.java: 基本上是一个盒子,用于添加滑动面板。
  6. StateListener.java: 一个用于切换滑动面板状态(展开/折叠)的接口。
  7. BookForm.java: 将出现在滑动面板中的自定义面板。
  8. TestSlidingPanel.java: 这是测试类。

背景 

                                                        图 3 

从图 3 可以看出各个类之间的关系。 黄色框表示需要滑动的面板(在本例中为BookForm.java)。 灰色框表示 SlideConatiner 面板,SlideAnimator 类(负责动画效果)在该面板上进行滑动过渡。 红色框是标题面板。TitlePanel 将出现在每个 SlideComponent 的顶部。 蓝色框封装了 TitlePanelSlideContainer。 最后一个黑色框表示 SlidePaneFactory 类,它基本上是一个用于保存 SlidePanel 的容器。

步骤详解

创建滑动窗格非常简单。 首先,您必须创建一个 SlidePaneFactory 实例。 有两种方法可以创建工厂实例。

 SlidePaneFactory.getInstance();
//                or
SlidePaneFactory.getInstance(boolean isGroup);

默认的 getInstance() 用于创建未分组的滑动窗格。 要创建分组的滑动窗格,请传递布尔值 true。 现在 SlidingPaneFactory 已准备就绪。 每个工厂代表每个滑动窗格,并且每个滑动窗格又可以包含多个滑动面板。 要将滑动面板添加到 SlidePane 中,您可以使用以下语句之一

SlidePaneFactory.add((JComponent slideComponent);
//                    or
SlidePaneFactory.add((JComponent slideComponent, String title);
//                    or
SlidePaneFactory.add((JComponent slideComponent, String title, Image imageIcon);
//                    or
SlidePaneFactory.add((JComponent slideComponent, String title, Image imageIcon, boolean isExpand);

slideComponent”代表滑动面板。 第二个参数用于设置滑动面板的标题。 imageIcon 用于设置滑动面板的图像,最后一个参数用于设置面板是处于展开/折叠模式。

现在是最后一步,将工厂实例添加到您的应用程序中。

关注点

非常容易创建。 您可以轻松地将分组的滑动面板转换为未分组的滑动面板,反之亦然,并且还可以轻松地设置每个面板的默认状态(展开/折叠)。

鸣谢

  • 特别感谢 filthy-rich-clients 。 为了动画面板,我使用了 SlideInNotification.java 代码,并根据我的要求进行了一些自定义。
  • 特别感谢 Dhilshuk Reddy 的渐变面板。
© . All rights reserved.