Я пытаюсь сделать свой собственный индикатор выполнения на моем заставке. Создание мой экран заставки было легко:Заставка Заставка не работает
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, ширина, высота) не делает никакой разницы.
Я пытался ссылаться на качелях EDT с:
SwingUtilities.invokeAndWait((new Splash()));
Но ничего не происходит.
Может ли кто-нибудь увидеть проблему? Или знаете, как это исправить?
Я не могу попробовать это (таким образом, комментарий), но я был бы осторожен с линией: '(width * percent)/100', так как это все операции с целыми числами. – sdasdadas
Это верный момент, я брошу 100, чтобы удвоить. – Adude11
Вы можете просто написать 100.0. – sdasdadas