スプラッシュ画面で自分のプログレスバーを作成しようとしています。スプラッシュ画面の作成は簡単でした。
java -splash:EaseMailMain.jpg Main.class(Eclipseから)
私のメインメソッドの最初の行はこれを呼び出します:
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()));
しかし、何も起こりません。
誰かが問題を見ることができますか?またはそれを修正する方法を知っていますか?