Я хотел бы сделать заставку с анимированным 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 и что есть некоторые проблемы/ошибки, связанные с Java 7 в Matlab. – GuillaumeA
@ G_A Ну ... Это может быть не идеально ... но есть класс AWTUtilities со статическим setShape (Window, Shape); метод, который делает то же самое. Проверьте последний абзац этого [сайта] (http://docs.oracle.com/javase/tutorial/uiswing/misc/trans_shaped_windows.html). Это будет работать только для java 6 и может иметь проблемы с java 7 ... Его очень подлый маленький класс :) – initramfs