我想用動畫GIF製作閃屏。我的GIF動畫有一個透明的背景,所以我想只顯示我的GIF的可見部分作爲閃屏。 首先,我必須指定我正在使用Matlab,所以不可能(或者我沒有找到如何)覆蓋組件/函數。 這裏我的示例代碼:Java動畫透明閃屏
win = javax.swing.JWindow;
jl = javax.swing.JLabel(javax.swing.ImageIcon('C:\Users\ME\Documents\loader512-.gif'));
win.getContentPane.add(jl);
win.setAlwaysOnTop(true);
win.pack;
%% set the splash image to the center of the screen
screenSize = win.getToolkit.getScreenSize;
screenHeight = screenSize.height;
screenWidth = screenSize.width;
% get the actual splashImage size
imgHeight = 512;
imgWidth = 512;
win.setLocation((screenWidth-imgWidth)/2,(screenHeight-imgHeight)/2);
win.show
它工作得很好shwing圖像,然而其背景是醚白色或灰色取決於窗口的透明度。 我也試圖玩JLabel的背景而沒有成功。
請幫忙!
謝謝!但setShape顯然不被認爲是類javax.swing.JWindow的一部分(我運行Java 8) – GuillaumeA
我剛剛意識到Matlab使用Java 6,更新到Java 7是棘手的,因爲它使用JVM並且在Matlab中有一些與Java 7相關的問題/錯誤。 – GuillaumeA
@G_A嗯......這可能不是理想的......但有一個叫靜態setShape(Window,Shape)的AWTUtilities類;方法,做同樣的事情。看看這個[site]的最後一段(http://docs.oracle.com/javase/tutorial/uiswing/misc/trans_shaped_windows.html)。這將只適用於Java 6和可能有問題的Java 7 ...它是一個非常鬼鬼祟祟的小班:) – initramfs