Archiv verlassen und diese Seite im Standarddesign anzeigen : [Java] Programmstart (Ladebildschirm)
Hi,
Gibt es unter Java irgendwie eine Möglichkeit einen Ladebildschirm für mein Programm zu erzeugen. Bisher habe ich ein JFrame dafür genommen. Doch eigentlich soll es nur ein Kasten sein, in den ich Swing-Komponenten einbauen kann.
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.net.URL;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JWindow;
public class Splash extends JWindow//class is based on swing so it has to extend JWindow
{
//some private variables
private Container container;
private JLabel label;
private JLabel infoLabel ;
private JPanel panel;
/** constructor of an new Splash object
* @ param ImageIcon logo
* shows the logo at the startup of the program
*/
public Splash()
{
infoLabel = new JLabel("Eine Tolle Meldung");
URL logourl = getClass().getResource("Pfad/zu/bild.png");
ImageIcon logo = new ImageIcon(logourl);
container = this.getContentPane();
container.setLayout(new BorderLayout());
label = new JLabel(logo); //this label includes the Splash screen picture
panel = new JPanel(new BorderLayout());
panel.setBorder(BorderFactory.createLineBorder(Col or.black));
panel.add(label, BorderLayout.CENTER);
panel.add(infoLabel, BorderLayout.SOUTH) ;
container.add(panel);
pack();
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
//gets the screen size of the screnn of the machine the programm is displayed on
int w = getSize().width;
int h = getSize().height;
int x = (dim.width-w)/2;
int y = (dim.height-h)/2;
setBounds(x, y, w, h); //sets the Splash screen in the middle of the display
}
public void showSplash()
{
setVisible(true);
}
public void updateInfoLabel(String info)
{
infoLabel.setText(info);
}
}//end of class Splash.java
Damit kannst Du einen solchen Splash-Screen erzeugen. Einfach in der der main erzeugen und mit showSplash() anzeigen lassen und wenn alles geladen ist wieder verbergen. Falls das Laden länger dauert kannst Du mittels der updateInfoLabel die Ausgaben aktualisieren.
HTH
Grüße fs111
peschmae
05-05-2004, 19:29
Was meinst du mit Kasten?
Übrigens geht recht viel von der Startzeit fürs Laden der JVM drauf - zumindest bei kleineren Apps - und da ist der Splashscreen ja noch nicht da.
MfG Peschmä
Danke,
das ist genau das Richtige.
@peschmae:
Da das Programm recht groß ist und auch schon etwas braucht, ist das in diesem Fall vernachlässigbar. ;)
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.