| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1321 人关注过本帖
标题:我设计做的一个时钟不能运动,请教!!
取消只看楼主 加入收藏
左岸
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2004-11-25
收藏
 问题点数:0 回复次数:3 
我设计做的一个时钟不能运动,请教!!

急!我毕业设计做的一个时钟不能运动!可能是少了一个刷新的方法。请教高手指点!
原代码如下:
import java.awt.*;

import java.awt.geom.*;
import java.util.Calendar;
import java.util.GregorianCalendar;

import javax.swing.*;

public class app {

public static void main(String[] args) {
TextTestFrame frame=new TextTestFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();

}
}
class TextTestFrame extends JFrame
{
public TextTestFrame()
{
setTitle("Clock");
setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);

Container contentPane=getContentPane();
JPanel panel=new JPanel();

contentPane.add(panel,BorderLayout.SOUTH);

clock=new ClockPanel();
contentPane.add(clock,BorderLayout.CENTER);


GregorianCalendar calendar=new GregorianCalendar();
int hours=calendar.get(Calendar.HOUR);
int minutes=calendar.get(Calendar.MINUTE);
int seconds=calendar.get(Calendar.SECOND);

clock.setTime(hours,minutes);

}
public static final int DEFAULT_WIDTH=300;
public static final int DEFAULT_HEIGHT=300;

private JTextField hourField;
private JTextField minuteField;
private ClockPanel clock;


}
class ClockPanel extends JPanel
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2=(Graphics2D)g;
Ellipse2D circle=new Ellipse2D.Double(100,100,2*RADIUS,2*RADIUS);
g2.draw(circle);

double hourAngle=Math.toRadians(90-360*minutes/(12*60));
drawHand(g2,hourAngle,HOUR_HAND_LENGTH);

double minuteAngle=Math.toRadians(90-360*minutes/60);
drawHand(g2,minuteAngle,MINUTE_HAND_LENGTH);

double secondAngle=Math.toRadians(90-6*seconds);
drawHand(g2,secondAngle,SECOND_HAND_LENGTH);



}
public void drawHand(Graphics2D g2,double angle,double handLength)
{
Point2D end=new Point2D.Double(2*RADIUS+handLength*Math.cos(angle),2*RADIUS-handLength*Math.sin(angle));
Point2D center=new Point2D.Double(2*RADIUS,2*RADIUS);
g2.draw(new Line2D.Double(center,end));
}
public void setTime(int h,int m)
{
minutes=h*60+m;
repaint();
}
private double minutes=0;
private double seconds=0;
private double RADIUS=100;
private double MINUTE_HAND_LENGTH=0.8*RADIUS;
private double HOUR_HAND_LENGTH=0.6*RADIUS;
private double SECOND_HAND_LENGTH=1*RADIUS;
}

搜索更多相关主题的帖子: 时钟 运动 设计 
2006-03-26 11:14
左岸
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2004-11-25
收藏
得分:0 
楼上的大哥谢谢你啊!我是一个java大菜鸟,学半年java都学傻了,很简单的问题都会想的那么复杂,现在是我自己一人搞设计,头都大了.不过你说的我还是看不懂.说实话我现在能看懂一些简单的程序,写是困难了点.你能不能把你这个方法发到我邮箱上(zjb_613@163.com)拜托了!!

吾将尽吾毕生之精力,寻求吾唯一之精神伴侣.得之,吾幸,不得,吾命.....
2006-03-26 16:02
左岸
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2004-11-25
收藏
得分:0 
楼上的大哥谢谢你啊!我是一个标准的java大菜鸟,学半年java都学傻了啊!一些简单的问题都会想的那么复杂,现在是我一个人搞设计,头都快大了.不过大哥说的方法小弟还是看不懂啊!不瞒你说,我现在只能看懂一些简单的程序,写是困难了点,你能不能把你的方法发到我邮箱上(zjb_613@163.com)拜托了!!

吾将尽吾毕生之精力,寻求吾唯一之精神伴侣.得之,吾幸,不得,吾命.....
2006-03-26 16:09
左岸
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2004-11-25
收藏
得分:0 

谢谢楼上的大哥
不知道说什么好了!我忙了十几天的设计,让你一下就能出来了,而且又是那么完美.
佩服的五体投地!向大哥学习.

吾将尽吾毕生之精力,寻求吾唯一之精神伴侣.得之,吾幸,不得,吾命.....
2006-03-26 16:23
快速回复:我设计做的一个时钟不能运动,请教!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016586 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved