這篇文章主要介紹如何實現Swing容器組件的顯示效果,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
成都網站設計、成都網站制作的開發,更需要了解用戶,從用戶角度來建設網站,獲得較好的用戶體驗。成都創新互聯多年互聯網經驗,見的多,溝通容易、能幫助客戶提出的運營建議。作為成都一家網絡公司,打造的就是網站建設產品直銷的概念。選擇成都創新互聯,不只是建站,我們把建站作為產品,不斷的更新、完善,讓每位來訪用戶感受到浩方產品的價值服務。
本文的演示使用下面幾行代碼就實現了容器顯示的淡入淡出效果:
/**
* 淡入淡出式顯示內容組件的容器
* @author William Chen
*/
public class GlassBox extends JComponent implements ActionListener{
//常數定義
private static final int ANIMATION_FRAMES=50;
private static final int ANIMATION_INTERVAL=10;
//幀索引
private int frameIndex;
//時鐘
private Timer timer;
/** Creates a new instance of GlassBox */
public GlassBox() {
}
public void paint(Graphics g){
if(isAnimating()){
//根據當前幀顯示當前透明度的內容組件
float alpha=(float)frameIndex/(float)ANIMATION_FRAMES;
Graphics2D g2d=(Graphics2D)g;
g2d.setComposite(AlphaComposite.getInstance
(AlphaComposite.SRC_OVER, alpha));//Renderer渲染機制
super.paint(g2d);
}else{
//如果是***次,啟動動畫時鐘
frameIndex=0;
timer=new Timer(ANIMATION_INTERVAL, this);
timer.start();
}
}
//判斷當前是否正在進行動畫
private boolean isAnimating(){
return timer!=null && timer.isRunning();
}
//關閉時鐘,重新初始化
private void closeTimer() {
if(isAnimating()){
timer.stop();
frameIndex=0;
timer=null;
}
}
//動畫時鐘處理事件
public void actionPerformed(ActionEvent e) {
//前進一幀
frameIndex++;
if(frameIndex>=ANIMATION_FRAMES)
//***一幀,關閉動畫
closeTimer();
else//更新當前一幀
repaint();
}
}
將GlassBox類作為JFrame的ContentPane就能實現窗口內容顯示的淡入淡出效果。GlassBox更常見的使用方式是作為普通容器,放在應用程序的任何地方。本文附帶的演示程序是將GlassBox是作為普通容器加入JFrame的ContentPane內的。
Swing靈活強大的擴展和自定義功能得益于其優秀的模型和架構設計。如果程序是僅局限于用幾個Label和Button等堆砌起來的簡單應用,你很難體會到Swing容器組件的優點,反而會因為它的靈活復雜覺得它不如SWT等編寫簡單。然而在你面對現實應用中的復雜、靈活多變的界面需求時,Swing的能力就逐步顯現了出來了。
以上是“如何實現Swing容器組件的顯示效果”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創新互聯行業資訊頻道!
文章名稱:如何實現Swing容器組件的顯示效果
地址分享:http://m.newbst.com/article18/isjcdp.html
成都網站建設公司_創新互聯,為您提供全網營銷推廣、服務器托管、網站營銷、定制開發、移動網站建設、響應式網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯