⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jsplashwindowplus.java

📁 这是《Java案例精粹150例(上册)》一书配套的源代码。
💻 JAVA
字号:
// JSplashWindowPlus.java

import javax.swing.*;
import java.awt.*;
import java.net.*;

public class JSplashWindowPlus extends JWindow implements Runnable {
	Thread splashThread = null;
	private JProgressBar progress;

	public JSplashWindowPlus() {
		setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
		JPanel splash = new JPanel(new BorderLayout());
		URL url = getClass().getResource("/images/tu.gif");
		if (url != null) {
			splash.add(new JButton(new ImageIcon(url)), BorderLayout.CENTER);
		}
		progress = new JProgressBar(1, 100);
		// 设置进度条启动时可显示字符串
		progress.setStringPainted(true);
		// 设置进度条边框
		progress.setBorderPainted(true);
		progress.setString("Program is Now Loading...");
		progress.setBackground(Color.white);
		// 将进度条加入内容窗格中
		splash.add(progress, BorderLayout.SOUTH);
		setContentPane(splash);
		Dimension screen = getToolkit().getScreenSize();
		pack();
		// 设置显示位置
		setLocation((screen.width - getSize().width) / 2,
				(screen.height - getSize().height) / 2);
	}

	public void start() {
		this.toFront();
		splashThread = new Thread(this);
		splashThread.start();
	}

	public void run() {
		show();
		try {
			for (int i = 0; i < 100; i++) {
				Thread.sleep(100);
				progress.setValue(progress.getValue() + 1);
			}
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		dispose();
	}

	static void showFrame(String title) {
		JFrame frame = new JFrame(title);
		frame.setSize(640, 480);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		// 将窗口置于屏幕中央
		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
		Dimension frameSize = frame.getSize();
		if (frameSize.height > screenSize.height) {
			frameSize.height = screenSize.height;
		}
		if (frameSize.width > screenSize.width) {
			frameSize.width = screenSize.width;
		}
		frame.setLocation((screenSize.width - frameSize.width) / 2,
				(screenSize.height - frameSize.height) / 2);

		try {
			Thread.sleep(10000);
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		frame.setVisible(true);

	}

	public static void main(String[] args) {
		JSplashWindowPlus splash = new JSplashWindowPlus();
		splash.start();
		showFrame("Splash window demo");
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -