2012-08-31 62 views
0

我有一個加載符號gif - 動畫和透明背景。 如何在Java中使用它 - 顯示它的動畫並使其背景透明?如何使用Java中的透明GIF創建加載動畫

我用這個代碼把它與ajaxload

+0

你到現在爲止做了什麼,任何[SSCCE](http://sscce.org) –

+0

[看這個問題](http://stackoverflow.com/questions/8783535/java-swing-loading-animation) – Brian

+0

我沒有設法做任何事情,所以我刪除了我的代碼。一般來說 - 我試圖加載,如果在Jlabel上 - 顯示動畫,但背景不透明。在jpanel上使用不透明度時 - 一切都變得透明。所以 - 沒有運氣:-( – SharonBL

回答

1

你的意思是,或許像如加載splashscreen

我創建GIF動畫透明...

Super

最簡單的方法是以ImageIconJLabel

ImageIcon animatedGif = new ImageIcon(...); // Path/URL to your gif 
JLabel splashLabel = new JLabel(animatedGif); 

// Add to your splash screen... 

一旦你的基本設置,你可能會想無修飾框架(或只是使用的JWindow)

myJFrame.setUndecorated(true); 

哦,當然,如果你想獲得真正的過頂,你用一個透明的窗口...

Over the top

+0

我再試一試,你的解決方案(JFrame中和的JWindow)和 - 我看到預期的gif動畫,但是 - 它不是透明的 - 它是一個淺灰色不透明的背景。: - (任何其他想法?) – SharonBL

+0

有幾個小竅門,首先,確保實際的容器是透明的(這包括窗口的內容窗格)。 /java.sun.com/developer/technicalArticles/GUI/translucent_shaped_windows/) – MadProgrammer

+0

AWTUtilities.setWindowOpaque(myJFrame,假)的伎倆!非常感謝你! – SharonBL

0

由於MadProgramer 這裏是一個工作代碼:

ImageIcon icon = new ImageIcon("images/ajax-loader.gif"); 
    JLabel label=new JLabel(icon); 
    JWindow myJFrame=new JWindow(); 
    myJFrame.setLayout(new BorderLayout()); 
    myJFrame.add(label,BorderLayout.CENTER); 
    myJFrame.setLocationRelativeTo(null); 
    myJFrame.setOpacity(0.5f); 
    myJFrame.setAlwaysOnTop(true); 
    label.setOpaque(false); 
    AWTUtilities.setWindowOpaque(myJFrame, false); 
    myJFrame.pack(); 
    myJFrame.setVisible(true);