I'm trying to make my own progress bar, on my splash screen. Creating my splash screen was easy:
java -splash:EaseMailMain.jpg Main.class
(From Eclipse)
The first line of my main method calls this:
new Thread(new Splash()).start();
And this is the splash class:
public class Splash implements Runnable {
public volatile static int percent = 0;
@Override
public void run() {
System.out.println("Start");
final SplashScreen splash = SplashScreen.getSplashScreen();
if (splash == null) {
System.out.println("SplashScreen.getSplashScreen() returned null");
return;
}
Graphics2D g = splash.createGraphics();
if (g == null) {
System.out.println("g is null");
return;
}
int height = splash.getSize().height;
int width = splash.getSize().width;
//g.drawOval(0, 0, 100, 100);
g.setColor(Color.white);
g.drawRect(0, height-50, width, 50);
g.setColor(Color.BLACK);
while(percent <= 100) {
System.out.println((width*percent)/100);
g.drawRect(0, height-50, (int)((width*percent)/100), 50);
percent += 1;
try {
Thread.sleep(50);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
I don't get any errors, but I do get a small box underneath it:
If I change the drawRects to (0, 0, width, height) it makes no difference.
I've tried invoking on the swing EDT with:
SwingUtilities.invokeAndWait((new Splash()));
But nothing happens.
Can anyone see the problem? Or know how to fix it?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…