我正在尝试在初始屏幕上制作自己的进度条。创建我的启动画面很简单:
java -splash:EaseMailMain.jpg Main.class(来自 Eclipse)
我的 main 方法的第一行调用了这个:
new Thread(new Splash()).start();
这是启动类:
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();
}
}
}
}
我没有收到任何错误,但我确实在它下面有一个小盒子:
如果我将 drawRects 更改为 (0, 0, width, height) 它没有区别。
我试过在摇摆 EDT 上调用:
SwingUtilities.invokeAndWait((new Splash()));
但什么也没有发生。
任何人都可以看到问题吗?或者知道如何解决?