知识大全 高级Swing组件makeover的三要素

Posted

篇首语:愿君学长松,慎勿作桃李。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 高级Swing组件makeover的三要素相关的知识,希望对你有一定的参考价值。

高级Swing组件makeover的三要素  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  收到一个朋友的邮件说如何在Swing中实现组件的动画效果 就像JIDE的那些组件一样 的确Swing框架的灵活性和可扩展性 使得它非常适合做这样Makeover工作 我简单总结一了以下 这种组件不外乎要有以下三种元素

   外观华丽 这包括使用渐变色 线条和字体反走样 图标设计漂亮抢眼 界面变化要柔和等等 但要避免设计太花哨 给人华而不实的感觉 原则上避免颜色太碎 图标应以简洁为主 不可滥用图片等 技术上没有多大要求 主要是美工 你需要掌握各种做图工具 自己最好有好的审美和设计能力

   动画效果 组件行为变化要柔和化 尽量使用动画效果 如淡入淡出 滚动弹出等等 技术上最常用的方法是使用javax swing Timer 为什么要使用javax swing Timer 这是因为javax swing Timer触发的事件都在EDT上执行 是线程安全的 除此外还需掌握Java D的常用接口及图像处理的常见技巧

   空间布局 这种组件空间布局的特点是立体 动态 拖拽式的 这和人的认知能力有关 人类认知的特点是具体到抽象 二维 静态和键盘式操作对普通用户来说太过抽象和专业化 需要一定的辅助学习才能理解的 而三维 动态 拖拽式操作更贴近于感性的认知范畴 因此这类组件经常有浮动式窗口 组件布局动态变化及拖拽式操作等特征 实现技术包括布局管理器(LayoutManager) Swing组件分层结构 Swing事件体系结构以及DnD接口等

  美工对于java程序员来说可能比较缺乏 但是华丽外观不仅仅是美工技术 这包括一些宏观设计原则 java程序员完全可以通过掌握这些方针原则来提高自己的设计水平 前面文章介绍那个《Swing外观设计方针》就是一本这样的书 至于美工 我觉得如果你有美术天分 那就要充分利用;如果没有 那么你可以模仿 熟悉几种的图形工具就完全可以不用自己的画图做出比较漂亮的图标 图片(当然没有考虑版权问题) 我就是后者 但是我发现我平时只需要PrScrn键(抓图) Paint(Windows 画图工具 切图 剪裁 转换格式) PowerPoint/OpenOffice Imprise(画图) Google Image(搜索图片)就已经足够了 其他所需的技术就需要你掌握Swing和Java D方方面面的技术了 当然复杂的组件不仅仅是靠掌握这些技术能解决的 可能你还需要能比较好地熟悉各种编程模式

  这个朋友特别提到Windows上的折叠式操作面板 他说

  另外 我对JIDE中两个东西很感兴趣 一个是CollapsiblePanel(Windows Explorer左边的常见任务) 点击后折叠 展开子面板 而且是动画效果

  

  因此昨晚就特地试了一下 虽然以前就大概明白使用Timer和布局管理器以及图像处理就可以实现这些东西 但一直没有做 昨晚的实验还是很成功的 大概花了两个小时就实现了这个面板 工作过程大概就是分解这些面板组件 解析那部分需要动画 应该在哪儿触发何种事件 另外就是编写这些组件 不断调试 这个过程的大部分时间都被效果调整占去了 你需要不断的运行程序 抓取屏幕 然后将它帖到Paint中 然后放大 然后和Windows上的抓图比较 包括大小 尺寸 颜色 字体 微观变化等等 最后算是基本实现了Windows这个折叠式的面板组件 下面的是我的演示程序的一个抓图

  

  这个是淡出淡入动画效果

  

  下面的Enable Animation的JCheckBox可以设置是否使用动画效果 选择上折叠和展开就具有动画效果

  这个组件的类名是dyno swing beans FolderPane 使用比较简单

  FolderPane fp=new FolderPane();//设置是否有动画效果 缺省没有

  fp setAnimated(true);//添加子面板

  fp addFolder( 文件和文件夹任务 getFileFolderPane());

  fp addFolder( 其他位置 getOtherPlacePane());

  fp addFolder( 详细信息 getDetailsPane());

  add(fp BorderLayout CENTER);

  主要接口有两个

  设置是否要动画效果

  public void setAnimated(boolean b)

  添加面板 title是面板标题文字 content是应用程序组件

  public void addFolder(String title JComponent content)

  这个演示是一个NetBeans工程 编译之后 直接双击foldered_pane jar既可观看效果 源代码中有详细的注解

  更新 刚刚修改了一下 现在可以支持JScrollPane 即能放到JScrollPane 并能在动画时动态的更新JScrollPane状态

cha138/Article/program/Java/hx/201311/25954

相关参考

知识大全 Swing 的新 Spinner 组件

Swing的新Spinner组件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  JavaSDKb

知识大全 Java swing组件的串行化和读取

Javaswing组件的串行化和读取  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  由于JBut

知识大全 SWT与Swing的比较

SWT与Swing的比较  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!.组件体系  a)Swing

知识大全 C#+ASP.NET 2.0 定制复合组件之高级篇

C#+ASP.NET2.0定制复合组件之高级篇  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一

溢额再保险的三要素

溢额再保险的三要素三要素为:危险单位、自留额和线数,其中危险单位是固定因素,自留额和线数是变动因素。(一)分保额的确定原保险人根据自身情况以及所承担保险标的质量,来最终确定自留额的大小,其超出的部分,

燃烧的三要素不包括()。

燃烧的三要素不包括()。A.可燃物B.点火源C.灭火剂【参考答案】C[拓展知识]防止管道等设备静电危害的主要措施是()。A.绝缘B.接地C.保持设备清洁D.保持设备潮湿[参考答案]B

燃烧的三要素包括()。

燃烧的三要素包括()。A.可燃物B.点火源C.助燃物D.灭火剂【参考答案】A、B、C[拓展知识]下列选项中属于我国安全生产方针的内容是()。A.安全第一B.预防为主C.综合治理D.防消结合[参考答案]

燃烧的三要素不包括()。

燃烧的三要素不包括()。A.可燃物B.点火源C.灭火剂【参考答案】C[拓展知识]防止管道等设备静电危害的主要措施是()。A.绝缘B.接地C.保持设备清洁D.保持设备潮湿[参考答案]B

燃烧的三要素包括()。

燃烧的三要素包括()。A.可燃物B.点火源C.助燃物D.灭火剂【参考答案】A、B、C[拓展知识]下列选项中属于我国安全生产方针的内容是()。A.安全第一B.预防为主C.综合治理D.防消结合[参考答案]

燃烧的三要素不包括()

燃烧的三要素不包括()。A.可燃物B.点火源C.灭火剂【参考答案】C[拓展知识]在影剧院发生地震时,应该()。A.不要慌乱,就地避震,趴在座椅旁B.集中到没有座椅的地方C.不顾一切向外跑[参考答案]A