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

📄 secondcounterlockup.java

📁 java多线程编程实例_Source
💻 JAVA
字号:
import java.awt.*;
import javax.swing.*;
import java.text.*;

public class SecondCounterLockup extends JComponent {
	private boolean keepRunning;
	private Font paintFont;
	private String timeMsg;
	private int arcLen;

	public SecondCounterLockup() {
		paintFont = new Font("SansSerif", Font.BOLD, 14);
		timeMsg = "never started";
		arcLen = 0;
	}

	public void runClock() {
		System.out.println("thread running runClock() is " +
				Thread.currentThread().getName());

		DecimalFormat fmt = new DecimalFormat("0.000");
		long normalSleepTime = 100;

		int counter = 0;
		keepRunning = true;

		while ( keepRunning ) {
			try {
				Thread.sleep(normalSleepTime);
			} catch ( InterruptedException x ) {
				// ignore
			}

			counter++;
			double counterSecs = counter / 10.0;

			timeMsg = fmt.format(counterSecs);

			arcLen = ( ( ( int ) counterSecs ) % 60 ) * 360 / 60;
			repaint();
		}
	}

	public void stopClock() {
		keepRunning = false;
	}

	public void paint(Graphics g) {
		System.out.println("thread that invoked paint() is " +
				Thread.currentThread().getName());

		g.setColor(Color.black);
		g.setFont(paintFont);
		g.drawString(timeMsg, 0, 15);

		g.fillOval(0, 20, 100, 100);  // black border

		g.setColor(Color.white);
		g.fillOval(3, 23, 94, 94);  // white for unused portion

		g.setColor(Color.blue);  // blue for used portion
		g.fillArc(2, 22, 96, 96, 90, -arcLen);
	}
}

⌨️ 快捷键说明

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