On Fri, 31 Oct 2003 23:56:02 +0100
Lars Dam <larsdam@post2.tele.dk> wrote:
> On Fri, 31 Oct 2003 21:46:28 +0000 (UTC)
> Henrik Stidsen <nospamforme@hs235.dk> wrote:
>
> > Hvordan laver man sådan en splashscreen som mange programmer bruger
> > mens de åbner ? (f.eks. OE, IE, CPUIdle.de osv)
> >
> > Jeg kunne bedst forestille mig at det enten var en Swing komponent
> > eller et API der skriver direkte til skærmen - eller skal man til at
> > lave sit helt eget fra bunden af ?
>
> Yep. Men det er ret nemt. Tegn et gif billede som du vil bruge som baggrund.
> Lav en klasse der extender JWindow; Smid et panel på dette windue. I dette panels
> paint() tegner du gif billedet, og bagefter skriver den tekst du vil have (f.eks. version,
> licens, load status etc.). Når dette er gjort, så åbner du bare dette vindue som noget af det første, og når din applikation er færdig med at loade lukker du det igen.
Jeg kom lige i tanke om at jeg havde noget kode; det er måske ikke det bedste, men det kan måske inspirere:
jwSplashScreen = new JWindow() {
public void paint(Graphics g) {
super.paint(g);
g.setFont(new Font("Dialog", Font.BOLD, 12));
g.setColor(Color.green.darker());
int w = g.getFontMetrics().stringWidth(JVCVersion.getBuildDate());
w = getSize().width-w;
g.drawString(JVCVersion.getBuildDate(), w-10, 10+g.getFontMetrics().getAscent() );
g.setColor(Color.green.brighter());
g.drawString(JVCVersion.getVersionString(), 10, getSize().height - 10);
}
};
jwSplashScreen.getContentPane().setLayout(new BorderLayout());
JLabel jl = new JLabel();
jwSplashScreen.getContentPane().add(BorderLayout.CENTER, jl);
ImageIcon iiSplash = jvc.util.Toolkit.getInstance().getImageIcon("/images/jvcsplash.gif");
jl.setIcon(iiSplash);
jwSplashScreen.pack();
Dimension d = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
jwSplashScreen.setLocation((d.width - jwSplashScreen.getSize().width) >> 1, (d.height - jwSplashScreen.getSize().height) >> 1);
jwSplashScreen.setVisible(true);
jwSplashScreen.toFront();
jwSplashScreen er deklareret som et JWindow, og luk ser sådan ud:
if (jwSplashScreen != null) {
jwSplashScreen.setVisible(false);
jwSplashScreen.dispose();
jwSplashScreen = null;
}
>
> >
> > --
> > .: Henrik Stidsen -
http://hs235.dk/ -
http://hs235.dk/blog/ ::...
> > Nerd is a word only used by those who can_t pronounce _Intellectual_.
> > -
http://query.dk/permlink.php?link=1058129898
>
> vh. ld
vh. ld