📄 fan.java
字号:
package myFan;import java.awt.Graphics;import javax.swing.JPanel;public class Fan extends JPanel implements Runnable { private static final long serialVersionUID = 1L; private int arc=0,direct=1,speed=10; boolean flag; Thread thread; public Fan(){ thread=new Thread(this); } public void run(){ while(true){ arc+=1; try { thread.sleep(100); repaint(); synchronized(thread){ if(!flag){ thread.wait(); flag=true; } } } catch (InterruptedException ex) { ex.printStackTrace(); } } } public void start(){ flag=true; thread.start(); } public void reverse(){ direct=direct*-1; } public void resume(){ synchronized(thread){ thread.notify(); } } public void stop(){ flag=false; } public void changeSpeed(int speed){ this.speed=speed/2; } public void paintComponent(Graphics g) { super.paintComponent(g); int xc = getSize().width /2; int yc = getSize().height /2; int ra = (int)(Math.min(getSize().width, getSize().height) * 0.4); int x = xc - ra; int y = yc -ra; g.fillArc(x, y, 2*ra, 2*ra, arc*direct*speed, 30); g.fillArc(x, y, 2*ra, 2*ra, arc*direct*speed+90, 30); g.fillArc(x, y, 2*ra, 2*ra, arc*direct*speed+180, 30); g.fillArc(x, y, 2*ra, 2*ra, arc*direct*speed+270, 30); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -