import java.awt.*;
import javax.swing.*;public class MyPanel1Test extends JPanel { private int r = 150;
private int angle = 0; public void paintComponent(Graphics g) {
int x = (int) (r / 2 * Math.cos(angle / 180.0 * Math.PI));
int y = -(int) (r / 2 * Math.sin(angle / 180.0 * Math.PI));
g.translate(r + 10, r + 10);
g.setColor(Color.BLACK);
g.fillArc(-r, -r, 2 * r, 2 * r, angle, -180);
g.setColor(Color.WHITE);
g.fillArc(-r, -r, 2 * r, 2 * r, angle, 180);
g.fillArc(x - r / 2, y - r / 2, r, r, angle, -180);
g.setColor(Color.BLACK);
g.fillArc(-x - r / 2, -y - r / 2, r, r, angle, 180);
g.drawOval(-r, -r, 2 * r, 2 * r);
g.fillOval(x - 10, y - 10, 20, 20);
g.setColor(Color.WHITE);
g.fillOval(-x - 10, -y - 10, 20, 20);
} public void setAngle(int angle) {
while (true) {
if (angle < 0) {
angle = angle + 360;
}
if (angle >= 360) {
angle = angle - 360;
} else {
break;
}
}
this.angle = angle;
} public int getAngle() {
return angle;
} public static void main(String[] Args) {
JFrame f = new JFrame();
final MyPanel1Test aPanel = new MyPanel1Test();
f.add(aPanel);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(350, 350);
f.setLocation(300, 200);
Thread aThread = new Thread() { public void run() {
while (true) {
try {
aPanel.setAngle(aPanel.getAngle() + 1);//加一逆时针转,减一顺时针转
aPanel.repaint();
sleep(50);//此处可以调节转动速度
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
aThread.start();
}
}
import javax.swing.*;public class MyPanel1Test extends JPanel { private int r = 150;
private int angle = 0; public void paintComponent(Graphics g) {
int x = (int) (r / 2 * Math.cos(angle / 180.0 * Math.PI));
int y = -(int) (r / 2 * Math.sin(angle / 180.0 * Math.PI));
g.translate(r + 10, r + 10);
g.setColor(Color.BLACK);
g.fillArc(-r, -r, 2 * r, 2 * r, angle, -180);
g.setColor(Color.WHITE);
g.fillArc(-r, -r, 2 * r, 2 * r, angle, 180);
g.fillArc(x - r / 2, y - r / 2, r, r, angle, -180);
g.setColor(Color.BLACK);
g.fillArc(-x - r / 2, -y - r / 2, r, r, angle, 180);
g.drawOval(-r, -r, 2 * r, 2 * r);
g.fillOval(x - 10, y - 10, 20, 20);
g.setColor(Color.WHITE);
g.fillOval(-x - 10, -y - 10, 20, 20);
} public void setAngle(int angle) {
while (true) {
if (angle < 0) {
angle = angle + 360;
}
if (angle >= 360) {
angle = angle - 360;
} else {
break;
}
}
this.angle = angle;
} public int getAngle() {
return angle;
} public static void main(String[] Args) {
JFrame f = new JFrame();
final MyPanel1Test aPanel = new MyPanel1Test();
f.add(aPanel);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(350, 350);
f.setLocation(300, 200);
Thread aThread = new Thread() { public void run() {
while (true) {
try {
aPanel.setAngle(aPanel.getAngle() + 1);//加一逆时针转,减一顺时针转
aPanel.repaint();
sleep(50);//此处可以调节转动速度
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
aThread.start();
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货