java -jar -splash:xxx.jpg xxx.jar
SplashScreen-Image: EPM-300dpi_Large.jpg
SplashScreen-Image: EPM-300dpi_Large.jpg
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.SplashScreen;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class TestMitiThread {
public TestMitiThread(){
System.out.println("thread test");
};
System.out.println(Thread.currentThread().getName() + "Thread start");
Progress ps = new Progress("Progress");
ps.start();
// JFrame frame = new JFrame("Splash Me2");
System.out.println("xxxxxxx");
// frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// JLabel label = new JLabel("Hello, Splash", JLabel.CENTER);
// frame.add(label, BorderLayout.CENTER);
// frame.setSize(300, 95);
System.out.println("No.");
for (int i = 0; i < 100; i++) {
try {
Thread.sleep(70);
} catch (InterruptedException ignored) {
}
System.out.println("zzzzzzz:"+i);
}
// b=true;
synchronized( ps.condition ){
ps.condition.notify();
}
// frame.setVisible(true);
// new FrameShow("Progress",ps.condition).start();
System.out.println(Thread.currentThread().getName() + "Thread over");
}
}
class Progress extends Thread {
public Object condition=new Object();
public Progress(String threadName) {
super(threadName);
// this.condition=tt;
}
public void run() {
SplashScreen splash = SplashScreen.getSplashScreen();
if(splash!=null){
Graphics2D g = (Graphics2D) splash.createGraphics();
Dimension dim = splash.getSize();
int wt=2;
System.out.println("width:"+dim.width);
System.out.println("height:"+dim.height);
for (int i = 0; i < 26; i++) {
g.setColor(Color.blue);
g.fillRect(11, 260, i*26, dim.height - 278);
g.drawString(i*4+"% ",(11+i*26),275);
splash.update();
try {
if(i*4!=96){
Thread.sleep(400);
}else{
synchronized( condition ) {
condition.wait();
}
}
} catch (InterruptedException ignored) {
}
}
}else{
System.out.println("splash is null");
}
}
}