splash swing 启动进度条
java -jar -splash:xxx.jpg xxx.jar
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"); } }}