Hallo!
Ich versuche seit etwa 3 Stunden ein animiertes Gif in meinen Splashscreen aufzunehmen.
Warum? -> Ladebalken (ohne Prozent o.a., einfach nur eine Animation).
Nur leider bekomm ich das gif ohne einen JFrame nicht reingeklopft, was aber mies aussieht, da der Splashscreen selbst ein loses Objekt ist.
(Nebenbei, ich würde den Splashscreen gerne an einer bestimmten Farbe transparent darstellen!)
Erstmal zu meinem aktuellen Problem.
Hier der Code:
Aufruf in Main Klasse:
Wie könnte ich das gif (als Icon oder Icon oder ImageIcon) animieren - und zwar direkt auf dem Splashscreen?
Edit:
Ich habe es nun geschafft den Balken animiert anzuzeigen, allerdings erst sobald ich 2, 3 mal mit der Maus drüber fahre!
Dazu habe ich folgenden Code in die Paint Methode gesetzt (natürlich erst initialisiert).
Wenn ich ihn in run() ausführe, dann wird das Spash-Hintergrundbild nach 2, 3 Mausbewegungen mit dem animierten Ladebalken "getauscht", wobei der überschüssige Bereich (Größenunterschied) weiß dargestellt wird :bahnhof:
Aber auch in der Paint-Methode muss ich den Button erst "aktivieren" indem ich mehrmals mit der Maus darüber fahre.
Ich versuche seit etwa 3 Stunden ein animiertes Gif in meinen Splashscreen aufzunehmen.
Warum? -> Ladebalken (ohne Prozent o.a., einfach nur eine Animation).
Nur leider bekomm ich das gif ohne einen JFrame nicht reingeklopft, was aber mies aussieht, da der Splashscreen selbst ein loses Objekt ist.
(Nebenbei, ich würde den Splashscreen gerne an einer bestimmten Farbe transparent darstellen!)
Erstmal zu meinem aktuellen Problem.
Hier der Code:
Java:
import javax.swing.JWindow;
import javax.swing.ImageIcon;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
public class TransparentSplashScreen extends JWindow implements Runnable
{
private static final long serialVersionUID = 1L;
Image bi = Toolkit.getDefaultToolkit().getImage("nsp.png"); //Splashscreen Grafik
ImageIcon ii = new ImageIcon(bi); //Splashscreen
Image ladebalken =Toolkit.getDefaultToolkit().getImage("balken.gif");
ImageIcon balken = new ImageIcon(ladebalken);
private boolean running = false;
public boolean isRunning()
{
return running;
}
public void run()
{
try
{
running = true;
setSize(ii.getIconWidth(), ii.getIconHeight());
setLocationRelativeTo(null);
setVisible(true); //besser als show
Thread.sleep(5000);
dispose();
}
catch(Exception exception)
{
exception.printStackTrace();
}
running = false;
dispose();
}
public void paint(Graphics g)
{
g.drawImage(bi, 0, 0, this);
}
}
Aufruf in Main Klasse:
Java:
Thread splashThread = new Thread(new TransparentSplashScreen());
splashThread.start();
Wie könnte ich das gif (als Icon oder Icon oder ImageIcon) animieren - und zwar direkt auf dem Splashscreen?
Edit:
Ich habe es nun geschafft den Balken animiert anzuzeigen, allerdings erst sobald ich 2, 3 mal mit der Maus drüber fahre!
Dazu habe ich folgenden Code in die Paint Methode gesetzt (natürlich erst initialisiert).
Java:
myButton.setIcon(balken);
myButton.setLocation(80, 160);
myButton.setSize(400, 50);
add(myButton);
//Edit: Auch mit setVisible ändert sich nichts
Wenn ich ihn in run() ausführe, dann wird das Spash-Hintergrundbild nach 2, 3 Mausbewegungen mit dem animierten Ladebalken "getauscht", wobei der überschüssige Bereich (Größenunterschied) weiß dargestellt wird :bahnhof:
Aber auch in der Paint-Methode muss ich den Button erst "aktivieren" indem ich mehrmals mit der Maus darüber fahre.
Zuletzt bearbeitet: