主题:求助!!!!!!!!!!!!
tqiuyan
[专家分:0] 发布于 2007-11-04 20:34:00
请问怎么用java编程画出时钟的小刻度。
回复列表 (共4个回复)
沙发
daifei4321 [专家分:2590] 发布于 2007-11-05 06:27:00
如果有兴趣,请下载我的代码http://www.comp.nus.edu.sg/~daifei/program/Java/ClockPic/Clock.java和http://www.comp.nus.edu.sg/~daifei/program/Java/ClockPic/ClockPic.java
我当年的程序,画了个钟.
板凳
happyboy2007 [专家分:3900] 发布于 2007-11-05 10:47:00
以下代码片断绘制了时钟的刻度,供你参考。
import javax.swing.*;
import java.awt.*;
class Demo extends JFrame
{
public Demo()
{
MyPanel mp = new MyPanel();
this.setContentPane(mp);
this.setSize(400,370);
this.setVisible(true);
}
public static void main(String[]args)
{
new Demo();
}
}
class MyPanel extends JPanel
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawOval(50,20,300,300);
for(int i=0;i<4;i++)
{
int d = i*90;
double r = Math.toRadians(d);
double sin = Math.sin(r);
double cos = Math.cos(r);
double x1 = 200+130*sin;
double y1 = 170-130*cos;
double x2 = 200+150*sin;
double y2 = 170-150*cos;
g.drawLine((int)x1,(int)y1,(int)x2,(int)y2);
}
for(int i=0;i<12;i++)
{
if(i%3==0)
continue;
int d = i*30;
double r = Math.toRadians(d);
double sin = Math.sin(r);
double cos = Math.cos(r);
double x1 = 200+140*sin;
double y1 = 170-140*cos;
double x2 = 200+150*sin;
double y2 = 170-150*cos;
g.drawLine((int)x1,(int)y1,(int)x2,(int)y2);
}
this.repaint();
}
}
3 楼
tqiuyan [专家分:0] 发布于 2007-11-05 19:35:00
我用的是校园网 很多网站都上不了 你能不能把你的代码发到我的邮箱里面啊 谢谢 tqiuyan_1986@163.com
4 楼
tqiuyan [专家分:0] 发布于 2007-11-05 19:39:00
谢谢你的代码 我的那个时钟需要画出小刻度,就像手表上的刻度。
我来回复