_java模拟时钟课设

合集下载

java课程设计范例

java课程设计范例

java课程设计范例一、教学目标本节课的教学目标是让学习者掌握Java编程语言的基本语法、流程控制语句以及简单的数据结构。

通过本节课的学习,学生将能够:1.理解Java语言的基本语法,包括数据类型、变量、运算符等。

2.掌握Java的流程控制语句,包括条件语句、循环语句等。

3.熟悉Java的基本数据结构,包括数组、链表、栈和队列等。

4.能够运用Java语言编写简单的程序,实现基本的算法。

二、教学内容本节课的教学内容主要包括以下几个部分:1.Java语言的基本语法:介绍Java语言的数据类型、变量、运算符等基本语法规则。

2.流程控制语句:讲解条件语句、循环语句等流程控制语句的用法和意义。

3.基本数据结构:介绍Java中的数组、链表、栈和队列等基本数据结构及其应用。

4.编程实践:通过编写简单的Java程序,使学生能够将所学知识应用于实际问题的解决中。

三、教学方法为了达到本节课的教学目标,我们将采用以下几种教学方法:1.讲授法:通过讲解Java语言的基本语法、流程控制语句和基本数据结构,使学生能够理解和掌握相关知识。

2.案例分析法:通过分析具体的Java程序案例,使学生能够了解和掌握Java语言的应用方法。

3.实验法:让学生通过编写和运行Java程序,亲自体验和掌握Java语言的语法和编程技巧。

四、教学资源为了支持本节课的教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《Java编程语言》等与本节课内容相关的教材和参考书。

2.多媒体资料:通过PPT等多媒体形式,生动、形象地展示Java语言的基本语法、流程控制语句和基本数据结构。

3.实验设备:为学生提供必要的计算机和网络环境,让他们能够编写和运行Java程序。

五、教学评估为了全面、客观地评估学生的学习成果,我们将采用以下几种评估方式:1.平时表现:通过观察学生在课堂上的参与程度、提问回答等情况,评估他们的学习态度和理解能力。

2.作业:布置与课程内容相关的作业,评估学生对知识点的掌握程度和编程能力。

java钟表课程设计

java钟表课程设计

java钟表课程设计一、课程目标知识目标:1. 学生能理解并掌握Java语言中面向对象编程的基本概念,如类、对象、属性、方法等;2. 学生能够运用Java语言编写一个简单的钟表程序,实现时间显示、时间更新等功能;3. 学生了解并掌握Java中事件处理机制,实现钟表界面的交互功能。

技能目标:1. 学生能够运用所学知识,独立完成一个具有基本功能的钟表程序设计;2. 学生通过实际编程操作,提高问题分析、程序设计、调试与优化的能力;3. 学生能够在团队协作中发挥自己的优势,与他人共同完成项目任务。

情感态度价值观目标:1. 学生通过课程学习,培养对编程的兴趣和热情,增强学习动力;2. 学生在课程实践中,体验编程解决问题的成就感,提高自信心;3. 学生在团队协作中,学会相互尊重、沟通与协作,培养良好的团队精神。

课程性质:本课程为实践性较强的课程,以项目驱动的方式进行教学,使学生能够将所学知识应用于实际项目中。

学生特点:本年级学生已经具备一定的Java编程基础,具有较强的学习能力和探究精神,对实际项目有较高的兴趣。

教学要求:结合学生特点,课程设计需注重实践操作,鼓励学生独立思考和团队协作,提高编程能力和解决问题的能力。

通过分解课程目标为具体学习成果,为后续教学设计和评估提供依据。

二、教学内容1. 面向对象编程基础:- 类与对象的概念及其关系- 方法定义与调用- 属性的定义与使用2. Java界面设计:- Java Swing图形用户界面- 常用组件的使用(如按钮、文本框等)- 布局管理器的应用3. 事件处理机制:- 事件的概念与分类- 事件监听器与事件处理方法- 常用事件处理机制的应用4. 钟表程序设计:- 钟表界面设计- 时间更新功能的实现- 闹钟功能的添加与实现5. 项目实践与团队协作:- 学生分组,明确项目任务与分工- 各组制定项目计划,进行项目实践- 项目成果展示与评价教学内容安排与进度:第一周:面向对象编程基础,类与对象的概念,方法的定义与调用第二周:Java界面设计,Swing组件的使用,布局管理器的应用第三周:事件处理机制,编写简单的事件处理程序第四周:钟表程序设计,实现时间显示与更新,添加闹钟功能第五周:项目实践与团队协作,完成项目任务,进行成果展示与评价教材章节关联:《Java程序设计》第四章:面向对象编程基础第五章:Java图形用户界面设计第六章:事件处理三、教学方法1. 讲授法:- 对于面向对象编程基础、Java界面设计、事件处理机制等理论知识,采用讲授法进行教学,为学生提供清晰的知识框架和概念体系。

java秒表课程设计

java秒表课程设计

java秒表课程设计一、课程目标知识目标:1. 理解并掌握Java中线程的基本概念和使用方法,包括线程的创建、启动和同步。

2. 学会使用Java编程语言实现一个秒表功能,包括开始、停止、暂停、继续和重置等操作。

3. 了解并掌握Java中的事件处理机制,实现秒表界面与用户交互功能。

技能目标:1. 能够运用所学知识独立编写Java程序,实现一个具有基本功能的秒表。

2. 培养学生分析问题、解决问题的能力,通过编写代码解决实际应用问题。

3. 提高学生的团队协作能力,通过小组讨论、分工合作完成课程设计。

情感态度价值观目标:1. 培养学生对编程的兴趣,激发学生学习Java的热情,增强自信心。

2. 培养学生具备良好的编程习惯,注重代码规范,遵循编程道德。

3. 培养学生的创新意识,鼓励学生尝试不同的解决方案,勇于挑战自我。

本课程设计针对的是具有一定Java基础的学生,旨在巩固和拓展学生对Java 编程的掌握程度。

课程性质为实践性较强的课程设计,要求学生在学习过程中充分发挥主动性和创造性。

根据学生特点和教学要求,课程目标分解为具体的学习成果,以便于后续教学设计和评估。

通过本课程的学习,学生将能够独立完成一个Java秒表项目,提高编程实践能力和团队协作能力。

二、教学内容本章节教学内容主要包括以下几部分:1. 线程基本概念与使用方法:- 线程的创建与启动- 线程同步与线程通信- 线程的生命周期2. Java图形用户界面(GUI)编程:- Swing组件的使用- 事件处理机制- 布局管理器3. 秒表功能实现:- 秒表功能需求分析- 秒表界面设计- 逻辑代码编写4. 课程项目实践:- 小组分工与协作- 编程规范与调试技巧- 项目展示与评价教学内容安排和进度如下:第一周:线程基本概念与使用方法学习,完成相关练习题。

第二周:Java图形用户界面(GUI)编程学习,学习Swing组件的使用和事件处理。

第三周:分析秒表功能需求,设计秒表界面,编写逻辑代码。

24点游戏java课程设计

24点游戏java课程设计

24点游戏java课程设计一、课程目标知识目标:1. 学生能理解“24点游戏”的规则及算法原理,掌握其与Java编程语言的结合方式。

2. 学生能运用Java编程语言实现基础的数据类型、运算符、循环和条件语句,解决24点游戏的计算问题。

3. 学生了解并掌握数组的创建和使用,实现对24点游戏牌组的管理。

技能目标:1. 学生通过编写Java程序,培养解决问题的能力,提高逻辑思维能力。

2. 学生学会使用集成开发环境(IDE)进行Java代码编写、调试和运行,提高实际操作能力。

3. 学生能够运用所学知识,创新性地设计并实现24点游戏的扩展功能。

情感态度价值观目标:1. 学生通过编程解决实际问题,增强对计算机编程的兴趣和热情,培养积极的学习态度。

2. 学生在小组合作中,学会沟通、协作和分享,培养团队精神和责任感。

3. 学生在探索和解决问题的过程中,培养面对挑战、勇于尝试的精神,树立自信心。

本课程针对初中或高中年级的学生,结合他们对编程知识有一定了解和兴趣的特点,以24点游戏为载体,让学生在实践过程中掌握Java编程基础,提高编程能力和解决问题的能力。

课程要求教师注重启发式教学,关注学生个体差异,鼓励创新思维和团队合作,确保学生在完成课程学习后能够达到上述目标。

二、教学内容1. Java基本语法和数据类型:回顾Java基本语法规则,重点讲解整数、浮点数、布尔类型等基础数据类型及其在24点游戏中的应用。

教材章节:第一章 Java语言概述,第二章 基本数据类型与运算符。

2. Java控制结构:讲解条件语句(if-else,switch-case)和循环语句(for,while,do-while),引导学生通过控制结构实现对24点游戏算法的逻辑设计。

教材章节:第三章 控制结构。

3. 数组的使用:介绍数组的定义、初始化和使用,教授如何使用数组存储和管理24点游戏的牌组。

教材章节:第四章 数组。

4. 方法与对象:通过编写方法实现24点游戏的功能模块,初步了解面向对象编程思想,如定义类、创建对象等。

java课程设计.docx

java课程设计.docx

java课程设计.docx一、教学目标本章节的教学目标分为三个部分:知识目标、技能目标和情感态度价值观目标。

知识目标:通过本章节的学习,学生需要掌握Java编程的基本语法、数据类型、控制结构、函数等基础知识。

技能目标:学生能够运用Java编程解决简单的实际问题,具备基本的编程能力。

情感态度价值观目标:培养学生对编程的兴趣和热情,提高学生解决问题的能力。

二、教学内容本章节的教学内容主要包括Java编程的基本语法、数据类型、控制结构、函数等基础知识。

具体包括以下内容:1.Java编程的基本语法和规则2.数据类型:整数类型、浮点类型、字符类型、布尔类型等3.控制结构:顺序结构、选择结构、循环结构等4.函数:定义和调用函数,传递参数,返回值等5.常用内置函数:数学函数、字符串函数等三、教学方法本章节的教学方法采用讲授法、案例分析法和实验法相结合的方式进行。

1.讲授法:通过讲解和示范,让学生掌握Java编程的基本语法和规则,以及数据类型、控制结构、函数等基础知识。

2.案例分析法:通过分析实际案例,让学生学会如何运用Java编程解决实际问题。

3.实验法:通过上机实验,让学生动手实践,巩固所学知识,提高编程能力。

四、教学资源本章节的教学资源包括教材、参考书、多媒体资料和实验设备等。

1.教材:选用权威、实用的Java编程教材,如《Java核心技术》等。

2.参考书:提供相关的Java编程参考书籍,如《Java编程思想》等。

3.多媒体资料:制作精美的PPT课件,提供Java编程相关的视频教程等。

4.实验设备:确保学生有足够的计算机设备进行上机实验。

五、教学评估本章节的教学评估主要包括平时表现、作业和考试三个部分,以全面、客观、公正地评估学生的学习成果。

1.平时表现:通过课堂参与、提问、讨论等方式,评估学生在课堂上的学习态度和表现。

2.作业:布置适量的作业,评估学生的知识掌握和运用能力。

3.考试:进行定期的考试,评估学生对章节知识的全面理解和掌握程度。

Java数字时钟(简单的桌面应用)

Java数字时钟(简单的桌面应用)

import java.util.*;/*****该程序是一个简单的数字时钟,每变化一秒,颜色随机变色,可以系统托盘,最大的特点是可以和桌面形成一体,也就是容纳这个数字时钟的窗体可以看成是透明的***********/import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.awt.image.BufferedImage;public class app509 extends JFrame{static int i=-1,geli=-1;/*这一部分是系统托盘图标的文件路径,可以自己设置,只要路径正确即可,可以是gif,jpg,png格式*/static Image image=Toolkit.getDefaultToolkit().getImage("D:1\\3.png");static SystemTray systemTray=SystemTray.getSystemTray();static PopupMenu pop01=new PopupMenu();static MenuItem MI01=new MenuItem("打开主程序");static MenuItem MI02=new MenuItem("退出程序");static MenuItem MI03=new MenuItem("隐藏");static TrayIcon trayIcon=new TrayIcon(image,"这是程序图标",pop01);static JLabel beijingtu=new JLabel();static JLabel xingqi=new JLabel(" ",JLabel.CENTER);static JLabel jlabel02=new JLabel("年",JLabel.CENTER);static JLabel jlabel03=new JLabel("月",JLabel.CENTER);static JLabel jlabel04=new JLabel("日",JLabel.CENTER);static JLabel jlabel05=new JLabel("分",JLabel.CENTER);static JLabel jlabel10=new JLabel("时",JLabel.CENTER);static JLabel jlabel12=new JLabel("分",JLabel.CENTER);static JLabel jlabel13=new JLabel("秒",JLabel.CENTER);static JLabel jlabel06=new JLabel(" ",JLabel.CENTER);static JLabel jlabel07=new JLabel(" ",JLabel.CENTER);static JLabel jlabel08=new JLabel(" ",JLabel.CENTER);static JLabel jlabel09=new JLabel(" ",JLabel.CENTER);static JLabel jlabel11=new JLabel(" ",JLabel.CENTER);static JLabel jlabel=new JLabel(" ",JLabel.CENTER);static JLabel jbData[]={jlabel13,jlabel02,jlabel03,jlabel04,jlabel10,jlabel12};static JLabel jbData02[]={jlabel,jlabel07,jlabel08,jlabel09,jlabel11,jlabel06};static int mill=0;static int minute=0;static int hour=0;static int day=0;static int month=0;static int year=0;static int week;static int zuobiaoX,zuobiaoY;static JFrame JF01=new JFrame();static JDialog JF=new JDialog(JF01," ");static Robot robot;static BufferedImage image1;static Rectangle rec;static class mouseListener extends MouseAdapter{public void mouseClicked(MouseEvent a){if(a.getSource()==trayIcon){if(a.getClickCount()==2){i++;if(i%2==1){geli++;if(geli%2==1){image1=robot.createScreenCapture(rec);beijingtu.setIcon(new ImageIcon(image1));JF.setBounds(0,0,120,560);JF.setVisible(true);}}else{JF.setBounds(0,0,400,1);}}}}public void mouseEntered(MouseEvent a){if(a.getSource()==JF){image1=robot.createScreenCapture(rec);beijingtu.setIcon(new ImageIcon(image1));JF.setBounds(0,0,120,560);JF.setVisible(true);}}public void mouseExited(MouseEvent a){if(a.getSource()==JF){JF.setBounds(0,0,400,1);}}}public static void main(String args[]) throws Exception{trayIcon.addMouseListener(new mouseListener());rec=new Rectangle(0,0,(int)Toolkit.getDefaultToolkit().getScreenSize().getWidth(),(int)Toolkit.getDefaultToolkit().getScreenSize().getHeight());try{robot=new Robot(); }catch(Exception b){}image1=robot.createScreenCapture(rec);beijingtu.setIcon(new ImageIcon(image1));MI01.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent a){Image1=robot.createScreenCapture(rec);beijingtu.setIcon(new ImageIcon(image1));JF.setBounds(0,0,120,560);JF.setVisible(true);}});MI03.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent a){JF.setBounds(0,0,400,1);}});MI02.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent a){System.exit(0);}});try{pop01.add(MI01);pop01.add(MI03);pop01.add(MI02);systemTray.add(trayIcon);trayIcon.setImageAutoSize(true);trayIcon.addMouseListener(new mouseListener());}catch(Exception a){} JF.setResizable(false) ;JF.addMouseListener(new mouseListener());JF.setUndecorated(true);beijingtu.setBounds(0,0,(int)Toolkit.getDefaultToolkit().getScreenSize().getWidth(),(int)Toolkit.getDefaultToolkit().getScreenSize().getHeight());JF.setLayout(null);JF.setBounds(0,0,120,560);JF.setVisible(true);jlabel02.setBounds(91,94,24,25);jlabel06.setBounds(15,94,64,28);jlabel03.setBounds(91,175,24,25);jlabel07.setBounds(2,125,86,75);jlabel04.setBounds(91,261,24,25);jlabel08.setBounds(2,210,86,75);jlabel10.setBounds(91,346,24,25);jlabel09.setBounds(2,296,86,75);jlabel11.setBounds(2,382,86,75);jlabel12.setBounds(91,433,24,25);jlabel13.setBounds(91,520,24,25);jlabel.setBounds(2,468,86,75);xingqi.setBounds(2,30,118,62);JF.add(xingqi);xingqi.setHorizontalTextPosition(JLabel.CENTER);xingqi.setFont(new Font("微软雅黑",Font.BOLD,20));for(int i=0;i<jbData.length;i++){JF.add(jbData[i]);JF.add(jbData02[i]);}for(int i=0;i<jbData.length;i++){jbData[i].setFont(new Font("微软雅黑",Font.BOLD,15));jbData02[i].setFont(new Font("微软雅黑",Font.BOLD,30));}jlabel06.setFont(new Font("微软雅黑",Font.BOLD,15));for(int i=0;i<jbData.length;i++){jbData[i].setForeground(Color.blue);jbData02[i].setForeground(Color.red);}for(int i=0;i<jbData.length;i++){jbData[i].setHorizontalTextPosition(JLabel.CENTER);jbData02[i].setHorizontalTextPosition(JLabel.CENTER);}jlabel02.setHorizontalTextPosition(JLabel.RIGHT);JF.add(beijingtu);xiancheng xiancheng01=new xiancheng();xiancheng01.start();}}class xiancheng extends Thread{static GregorianCalendar date=new GregorianCalendar();app509 app=new app509();public void run(){for(int i=0;i<60;){try{sleep(1000);}catch(Exception a){}app.year=(date=new GregorianCalendar()).get(date.YEAR);app.jlabel06.setText(Integer.toString(app.year));app.month=((date=new GregorianCalendar()).get(date.MONTH)+1);app.jlabel07.setText(Integer.toString(app.month));app.day=(date=new GregorianCalendar()).get(date.DAY_OF_MONTH);app.jlabel08.setText(Integer.toString(app.day));app.week=(date=new GregorianCalendar()).get(date.DAY_OF_WEEK);app.hour=(date=new GregorianCalendar()).get(date.HOUR_OF_DAY);app.jlabel09.setText(Integer.toString(app.hour));app.minute=(date=new GregorianCalendar()).get(date.MINUTE);app.jlabel11.setText(Integer.toString(app.minute));l=(date=new GregorianCalendar()).get(date.SECOND);app.jlabel.setText(Integer.toString(l));if(app.jlabel.getText()!=" "){app.xingqi.setForeground(new Color((int)(255*Math.random()),(int)(255*Math.random()),(int)(255*Math.random())));for(int j=0;j<app.jbData.length;j++){app.jbData[j].setForeground(new Color((int)(255*Math.random()),(int)(255*Math.random()),(int)(255*Math.random())));app.jbData02[j].setForeground(new Color((int)(255*Math.random()),(int)(255*Math.random()),(int)(255*Math.random())));}} switch(app.week){case 1 : app.xingqi.setText("星期日");break;case 2 : app.xingqi.setText("星期一");break;case 3 : app.xingqi.setText("星期二");break;case 4 : app.xingqi.setText("星期三");break;case 5 : app.xingqi.setText("星期四");break;case 6 : app.xingqi.setText("星期五");break;case 7 : app.xingqi.setText("星期六");break;}System.gc();}}}/****复制以上代码进行编译即可*****/程序效果图:。

模拟时钟源代码

模拟时钟源代码
{
int xh, yh, xm, ym, xs, ys, s, m, h, xcenter, ycenter;
Date rightnow = enw Date(); //获取当前日期和时间
String today = rightnow.toLocaleString(); //时间对应的字符串
yh = (int)(Math.sin((h*30+m/2)*3.14f/180-3.14f/2)*30+ycenter);
g.setFont(new Font("TimesRoman", Font.PLAIN, 14));
g.setColor(Color.blue);
xm = (int)(Math.cos(m * 3.14f/30 - 3.14f/2) * 40 + xcenter);
ym = (int)(Math.sin(m * 3.14f/30 - 3.14f/2) * 40 + ycenter);
xh = (int)(Math.cos((h*30+m/2)*3.14f/180-3.14f/2)*30+xcenter);
repaint(); //调用paint()方法重画时钟
}
timer = null;
}
public void update(Graphics g)
{
paint(g); //重写该方法是为了消除抖动现象
public void init()
{
setBackground(Color.white); //设置Applet背景
}
public void paint(Graphics g) //显示数字和图形时钟

java课程设计满分

java课程设计满分

java课程设计满分一、教学目标本节课的目标是让学生掌握Java编程的基础知识,包括数据类型、变量、运算符等。

通过学习,学生应能够理解并运用Java编程解决简单的问题。

此外,学生还应掌握编程的基本规范和技巧,培养良好的编程习惯。

在情感态度方面,学生应培养对编程的兴趣和热情,提高自主学习的能力。

二、教学内容本节课的教学内容主要包括Java编程的基本概念和语法。

首先,介绍Java编程的环境和工具,如Eclipse和JDK。

然后,讲解Java的数据类型、变量和运算符,并通过示例让学生亲自动手实践。

接下来,介绍控制结构和函数,引导学生学会如何编写复杂的程序。

最后,通过实际项目案例,让学生运用所学知识解决实际问题。

三、教学方法本节课采用多种教学方法,以激发学生的学习兴趣和主动性。

首先,采用讲授法,为学生讲解Java编程的基本概念和语法。

然后,采用讨论法,引导学生分组讨论并解决问题。

接着,采用案例分析法,让学生分析实际项目案例,提高运用所学知识解决实际问题的能力。

最后,采用实验法,让学生动手实践,巩固所学知识。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们选择了以下教学资源。

首先,教材《Java编程思想》,作为学生学习的基础资料。

其次,参考书《Java核心技术》,为学生提供更深入的Java知识。

再次,多媒体资料,如教学视频和PPT,为学生提供直观的学习材料。

最后,实验设备,如计算机和网络,为学生提供动手实践的机会。

五、教学评估为了全面、客观地评估学生的学习成果,我们设计了以下评估方式。

首先,平时表现评估,包括课堂参与度、提问回答等,占总成绩的20%。

其次,作业评估,包括课后练习和项目作业,占总成绩的30%。

再次,考试评估,包括期中和期末考试,占总成绩的50%。

最后,实践项目评估,包括学生完成的实践项目和代码审查,占总成绩的10%。

六、教学安排本节课的教学安排如下:总共30课时,每周安排2课时。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.设计方案论证
2.1 运行环境:JCreator +JDK 平台 CPU:Pentium 2.8GHz 以上 内存:256MB 以上 硬盘空间:80G 以上 操作系统:Windows XP 2.2 设计思路及功能描述 Java 是一种简单的,面向对象的,分布式的,解释的,键壮的,安全的,结构中立 的,可移植的,性能很优异的,多线程的,动态的语言。Java 去掉了 C++语言的许多功 能,让 Java 的语言功能很精炼,并增加了一些很有用的功能,如自动收集碎片。这将 减少平常出错的 50%。而且,Java 很小,整个解释器只需 215K 的 RAM。 因此运用 Java 程序编写模拟时钟程序,实现简单显示时间的功能。本次课程设计 做的是 Java 简单模拟时钟,它是图形界面、线程、流与文件等技术的综合应用,其界 面主要采用了 java.awt 包,javax.swing 包等。 程序实现了模拟时钟的基本功能。 我设计的时钟有的界面良好,比较简洁美观,程序有很强的实用性,实现程序与电 脑的时间的同步。可以显示时钟,也可以显示分针秒针,并可以在相应位置调整时间。 而且初始运行会自动与电脑的时间校对,一般默认为同步,但还可以自己再次调节,提
表 1-成员变量表
Clock 成员变量 成员变量描述 变量类型 名称
时针
String
Hour
分针
String
Minute
秒针
String
Second
时间点
TextFieldFra bibliotektext_1
沈 阳 大 学
课程设计说明书
表 2-方法表
NO.3
Clock 方法 方法名 setCurrentTime 时间 paintHourPointer paintSecondPointer paintMinuteDot actionPerformed run 设置时针 设置秒针 设置分针 事件处理 程序运行 接口方法 接口方法 接口方法 功能 设置当前 备注 构造方法
NO.5
沈 阳 大 学
课程设计说明书
NO.6
用 Java 实现动画的原理与放映动画片类似, 就是取若干个相关的图像或图片, 顺序、 连续地在屏幕上先显示、后擦除,循环往复就可以获得动画的效果。 在动画设计中,一般会用到 paing( )、repaint( )、和 update( )方法。在动画设计中, 有时会存在抖动问题,但一般来说,浏览器能很好地解决显示和刷新问题。在图形设计 中,若重写 paint( )方法可以自动绘制所希望的图形,在需要更新图形时可调用 repaint( ) 方法,而不需要重写 repaint( )方法。至于 update( )方法,一般情况下既不需要重写,也 不需要调用。只是在动画设计中,如果仅重写 paint( )方法,会产生抖动现象,为消除抖 动现象,需要重写 update( )方法。 在主页中经常会看到卡通似的动画效果,制作这种动画的原理也是很简单的,就是 通过快速地放映许多张图片,利用人眼的视觉暂留特性来达到动画的效果。动画的质量 除了取决于图片的好坏之外,动画中动画的平滑速度,也是非常关键的。 2.4 程序说明 先是利用构造函数创建一个长为 500,宽为 200 的窗体,颜色设置为 black,并把窗 体设计为固定大小,并且创建一个监听事件进行监听。随即创建一个时间计数器,最后 实现 ActionListener 接口的实现方法。利用 2D 绘制图形的方法,在窗体左方画一个圆, 并且绘制时钟上的 12 个汉字, 然后利用 Calendar 类提供的 HOUR, MINUTE, SECOND 和 MILLISECOND 方法获得现在的时间,在计算时间和度数的关系;在利用 2D 绘制图 形的方法绘制出各指针,并设置不同的颜色。在利用 drawString 在窗体的右上方画出一 个小的框并在里面现在和时钟相对数字时间;然后根据相同的方法在数字时间下面显示 秒表功能。在设计的过程中,需要用到 Swing 组件和 Swing 容器与组件,布局管理器, 事件处理,绘制图形,还运用到了类的继承,事件监听器和线程。“SimpleDateFormat formatter” 用 于 格 式 化 时 间 显 示 ,“String lastdate” 用 于 保 存 当 前 时 间 的 字 符 串 ,“Font clockFaceFont”用于设置显示时钟里面的数字的字体; “Date currentDate”用于显示当前时 间;“Color handColor”用于显示时针、分针和表盘的颜色;“Color numberColor” 用于显 示秒针和数字的颜色,“public void init()”用于设计时钟格式并捕捉异常;“public void plotpoints(int x0, int y0, int x, int y, Graphics g)” 用于计算四分之一的圆弧;“public void circle(int x0, int y0, int r, Graphics g”) 用 Bresenham 算法来画圆, 其中(x0,y0)是圆的中心, r 为圆半径;“public void paint(Graphics g)”用于运行时钟程序; “public void start()”
沈 阳 大 学
课程设计说明书
int y1 = (int) ((r - 10) * Math.cos(rad * s)) g.drawLine(x + r, y + r, x + r + x1, y + r - y1) // 分针 g.setColor(Color.BLUE) x1 = (int) ((r - r / 2.5) * Math.sin(rad * m)) y1 = (int) ((r - r / 2.5) * Math.cos(rad * m)) g.drawLine(x + r, y + r, x + r + x1, y + r - y1) // 时针 g.setColor(Color.CYAN) x1 = (int) ((r - r / 1.5) * Math.sin(rad * h)) y1 = (int) ((r - r / 1.5) * Math.cos(rad * h)) g.drawLine(x + r, y + r, x + r + x1, y + r - y1) // 数字 g.setColor(Color.YELLOW) int d = 29 for (int i = 1; i <= 12; i++) x1 = (int) ((r - 10) * Math.sin(rad * d)) y1 = (int) ((r - 10) * Math.cos(rad * d)) g.drawString(i + "", x + r + x1 - 4, x + r - y1 + 5) d += 30 // 小点 d = 0; for (int i = 0; i < 60; i++) x1 = (int) ((r - 2) * Math.sin(rad * d)) y1 = (int) ((r - 2) * Math.cos(rad * d)) g.drawString(".", x + r + x1 - 1, x + r - y1 + 1) d += 6 // 显示时间 //Calendar now1 = new GregorianCalendar(); //g.drawString(now1.get(Calendar.HOUR_OF_DAY) + ":" //+ now1.get(Calendar.MINUTE) + ":" + now1.get(Calendar.SECOND), //0, 10); 主要成员方法: public void run 捕获异常 catch (Exception ex) 完成显示实时数据 s += 6 if (s >= 360) s=0 m += 6 if (m == 72 || m == 144 || m == 216 || m == 288) h += 6 if (m >= 360) m=0 h += 6; if (h >= 360) h = 0; this.repaint();
沈 阳 大 学
课程设计说明书
高了实用性。
NO.2
本系统共包括 1 个 java 源文件。Clock 源文件是本程序的主函数其作用是初始化棋 盘 。 setCurrentTime 源 文 件 实 现 电 脑 设 置 时 间 。 paintHourPointer 源 文 件 为 时 针 . paintSecondPointer 源文件实现人与电脑设置秒针. paintMinuteDot 源文件人与电脑设置 分针。 2.3 方案论证 2.3.1 详细设计 类名: Clock 作用: 自定义主类,对鼠标拖拽的初始界面进行声明 继承的父类: JComponent 类 实现的接口: 没有
课程设计说明书
JAVA 模拟时钟课设 1.课程设计的目的
NO.1
Java语言是当今流行的网络编程语言,它具有面向对象、跨平台、分布应用等特点。 面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而 且有利于软件的维护和继承。 为了进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象 的特性,锻炼学生熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了 一周的Java程序设计课程设计。 通过此次课程设计,巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握 JDK、Editplus、Eclipse、JCreator等开发工具的运用,拓宽常用类库的应用。使学生通 过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程 思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。
相关文档
最新文档