快速业务通道

利用SwingX与TimingFramework实现淡入淡出 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22

利用SwingX与TimingFramework实现淡入淡出

时间:2010-12-17 BlogJava Sha Jiang

本文使用SwingX与TimingFramework展示了如何实现淡入淡出效果,程序简洁 实用,希望对大家能有所助益。

在Swing中使用AlphaComposite设置界面的半透明度,再配合 javax.swing.Timer可以比较容易地实现淡入淡出效果。但需要我们继承具体的 UI组件,并重写它的paintComponent方法,同时还要为Timer提供一个 ActionListener的实现。这些对于程序员来说,显得有些乏味。

幸运地是,SwingX中的JXPanel(JPanel的子类)通过setAlpha方法来设置半透 明度,JXPanel中的所有UI组件都可随之半透明化。TimingFramework提供的 Animator可以帮助我们非线性地设置JXPanel中的alpha值。故,我们在实现淡入 淡出时,可以使用JXPanel来替代JPanel,用Animator来替代Timer。

旋喘SwingX嚥TimingFramework糞?記秘記竃(2)

扮寂:2010-12-17 BlogJava Sha Jiang

和中頁匯倖掲械酒汽議幣箭?乎幣箭壓匯倖聞喘CardLayout議JPanel-- cardPanel?嶄総淫根阻曾倖JXPanel--panelA 才panelB?宸曾倖徨否匂嶄嗽蛍 艶嗤匯倖JButton--buttonA才buttonB。輝泣似buttonA扮?繍記秘?幣panelB? 輝泣似buttonB扮?繍記秘?幣panelA。

1 public class FadingCardDemo extends JFrame  { 2 3     private static final long serialVersionUID =  8005909309849021746L; 4 5     private String CARD_A =  "CARD_A"; 6     private String CARD_B =  "CARD_B"; 7 8     private JPanel cardPanel =  null; 9     private JXPanel panelA = null; 10      private JXPanel panelB = null; 11     private JButton  buttonA = null; 12     private JButton buttonB =  null; 13 14     public FadingCardDemo() { 15          super("FadingButton Demo"); 16          setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 17          initUI(); 18     } 19 20     private void  initUI() { 21         cardPanel = new JPanel(new  CardLayout()); 22 23         buttonA = new JButton ("Button A"); 24         buttonA.addActionListener (actionHandler); 25         panelA = new JXPanel(new  BorderLayout()); 26         panelA.add(buttonA,  BorderLayout.CENTER); 27         cardPanel.add(panelA,  CARD_A); 28 29         buttonB = new JButton("Button  B"); 30         buttonB.addActionListener (actionHandler); 31         panelB = new JXPanel(new  BorderLayout()); 32         panelB.add(buttonB,  BorderLayout.CENTER); 33         cardPanel.add(panelB,  CARD_B); 34 35         Container container =  getContentPane(); 36         container.setLayout(new  BorderLayout()); 37         container.add(cardPanel,  BorderLayout.CENTER); 38     } 39 40     private  ActionListener actionHandler = new ActionListener() { 41 42          private Animator animator = null; 43 44          public void actionPerformed(ActionEvent e) { 45              if (animator == null) { 46        

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号