亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現Swing容器組件的顯示效果

發布時間:2021-12-27 15:11:12 來源:億速云 閱讀:365 作者:小新 欄目:編程語言

這篇文章主要介紹如何實現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容器組件的顯示效果”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长沙市| 柳江县| 定结县| 尉犁县| 林州市| 铁力市| SHOW| 昭平县| 休宁县| 宁夏| 贺兰县| 长寿区| 泰顺县| 紫云| 崇义县| 西城区| 广昌县| 天门市| 同德县| 桃园市| 永嘉县| 汤原县| 兴国县| 常山县| 平顺县| 平谷区| 乌兰县| 德钦县| 呈贡县| 尉氏县| 镇江市| 滦南县| 延安市| 吉木乃县| 波密县| 腾冲县| 许昌市| 南投县| 衢州市| 和政县| 仁化县|