如何实现Swing容器组件的显示效果

这篇文章主要介绍如何实现Swing容器组件的显示效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

成都网站设计、成都网站制作的开发,更需要了解用户,从用户角度来建设网站,获得较好的用户体验。成都创新互联多年互联网经验,见的多,沟通容易、能帮助客户提出的运营建议。作为成都一家网络公司,打造的就是网站建设产品直销的概念。选择成都创新互联,不只是建站,我们把建站作为产品,不断的更新、完善,让每位来访用户感受到浩方产品的价值服务。

本文的演示使用下面几行代码就实现了容器显示的淡入淡出效果:

  1. /**  

  2.  * 淡入淡出式显示内容组件的容器  

  3.  * @author William Chen  

  4.  */  

  5. public class GlassBox extends JComponent implements ActionListener{  

  6.     //常数定义  

  7.     private static final int ANIMATION_FRAMES=50;  

  8.     private static final int ANIMATION_INTERVAL=10;  

  9.     //帧索引  

  10.     private int frameIndex;  

  11.     //时钟  

  12.     private Timer timer;  

  13.      

  14.     /** Creates a new instance of GlassBox */  

  15.     public GlassBox() {  

  16.     }  

  17.      

  18.     public void paint(Graphics g){  

  19.         if(isAnimating()){  

  20.             //根据当前帧显示当前透明度的内容组件  

  21.             float alpha=(float)frameIndex/(float)ANIMATION_FRAMES;  

  22.             Graphics2D g2d=(Graphics2D)g;  

  23.             g2d.setComposite(AlphaComposite.getInstance
    (AlphaComposite.SRC_OVER, alpha));  

  24.             //Renderer渲染机制  

  25.             super.paint(g2d);  

  26.         }else{  

  27.             //如果是***次,启动动画时钟  

  28.             frameIndex=0;  

  29.             timer=new Timer(ANIMATION_INTERVAL, this);  

  30.             timer.start();  

  31.         }  

  32.     }  

  33.     //判断当前是否正在进行动画  

  34.     private boolean isAnimating(){  

  35.         return timer!=null && timer.isRunning();  

  36.     }  

  37.     //关闭时钟,重新初始化  

  38.     private void closeTimer() {  

  39.         if(isAnimating()){  

  40.             timer.stop();  

  41.             frameIndex=0;  

  42.             timer=null;  

  43.         }  

  44.     }  

  45.     //动画时钟处理事件  

  46.     public void actionPerformed(ActionEvent e) {  

  47.         //前进一帧  

  48.         frameIndex++;  

  49.         if(frameIndex>=ANIMATION_FRAMES)  

  50.             //***一帧,关闭动画  

  51.             closeTimer();  

  52.         else//更新当前一帧  

  53.             repaint();  

  54.     }  

  55. }  

将GlassBox类作为JFrame的ContentPane就能实现窗口内容显示的淡入淡出效果。GlassBox更常见的使用方式是作为普通容器,放在应用程序的任何地方。本文附带的演示程序是将GlassBox是作为普通容器加入JFrame的ContentPane内的。

Swing灵活强大的扩展和自定义功能得益于其优秀的模型和架构设计。如果程序是仅局限于用几个Label和Button等堆砌起来的简单应用,你很难体会到Swing容器组件的优点,反而会因为它的灵活复杂觉得它不如SWT等编写简单。然而在你面对现实应用中的复杂、灵活多变的界面需求时,Swing的能力就逐步显现了出来了。

以上是“如何实现Swing容器组件的显示效果”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!

文章名称:如何实现Swing容器组件的显示效果
地址分享:https://www.cdcxhl.com/article18/isjcdp.html

成都网站建设公司_创新互联,为您提供全网营销推广服务器托管网站营销定制开发移动网站建设响应式网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站建设