面向对象程序设计(Java)课程设计——会议计时器

目录

一、团队成员及任务

二、项目简介

三、功能架构图

四、任务与功能

五、功能讲解

1. *面向对象设计

2.*计时功能:

3. *良好的鲁棒性

4. 开始、暂停、继续与复位功能设计

五、课程设计感想

六、展望


一、团队成员及任务

队长:姚文鑫  计科(智能)22-1 202203200032

负责模块:用户界面设计、计时功能

组员:张进 计科(智能)22-1 202203200002

负责模块:开始与暂停功能、复位功能

二、项目简介

功能描述:基于javafx设计了会议计时器,计时器具有良好的用户交互界面,程序具备鲁棒性以及良好的移植性,主要包含开始、暂停、复位等基本功能。本文由团队合作开发。

三、功能架构图

四、任务与功能

序号

完成功能与任务

描述

1

用户界面设计

基于javafx框架,使用xfml、css实现良好的用户交互界面

2

计时功能

使用javafx多线程,使用Service进行及时任务,使用监听器对信号量进行监听,实现计时功能。

3

开始与暂停功能

使用鼠标点击函数,绑定相应按钮,对Service进行管理,以及初始化和标志位状态变化。

4

复位功能

使用自定义的clean、finish函数清理线程,以及进行初始化。

五、功能讲解

1. *面向对象设计

本程序基于javafx框架,终点实现了三个对象类

TimerApplication

 

StartController

 

 

 

 

 

 

 MyTask

 

TimerApplication类主要负责对窗口程序进行管理,主要成员如下:

public class TimerApplication extends Application

public static void main(String[] args)

StartController类主要负责对功能按钮、显示面板的实现。主要成员如下:

private final MyTask myTask

private Label Timertext

private Label Isrunning

private TextField TimeHtext

private TextField TimeMtext

private TextField TimeStext;

private Button startButton;

private Button ZeroButton;

protected void onStartButtonClick() throws InterruptedException

protected void onZeroButtonClick() throws InterruptedException

MyTask类继承Service<Void>模板类,主要负责计时功能的多线程实现。主要成员如下:

private int starttime

public void setStartNumber(int starttime)

protected Task<Void> createTask()

2.*计时功能:

计时功能主要通过重写javafx的多线程模板类Service<Void>实现,重载protected Task<Void> createTask() 函数,每隔一秒向窗体发送一次message,同时,主窗体添加message监听器,当监听到message发生变化时,将其转化为相应的数据格式,在前端进行显示。

 

 

 

 

3. *良好的鲁棒性

程序具有良好的鲁棒性,包括修正用户数据格式、格式错误提醒、析构函数、计时完毕提醒等、经过测试未发现严重错误漏洞。

 

4. 开始、暂停、继续与复位功能设计

开始功能主要通过鼠标点击函数,对用户输入数值进行整理、异常检测、格式转化,然后设置及时线程starttime,并开始线程,同时显示复位按钮,及时完成时执行finish函数

暂停功能实现主要通过,保存当前计时线程状态,取消Task,当用户点击继续按钮时,回复Task状态,继续计时任务。

复位功能的实现主要通过,Service的cancel与restart函数以及自定义的clean、finish函数实现。

5.界面设计

界面的设计基于javafx框架,使用xfml、css实现良好的用户交互界面。

 

 

 

五、课程设计感想

        本程序设计难点主要在于多线程的结构设计,javafx框架为了数据安全性,原生的Thread线程无法与前端数据进行交互,需要重写Service<void>模板类。以及设计完整的线程取消,保存线程状态、线程恢复。

六、展望

        本文在完成基本功能的基础上还有一些不足之处,例如用户交互界面尚且不够美观,线程本身的数据处理可能造成的计时存在毫秒级偏差。可以减少代码复杂性,减少保存线程状态所消耗的时间进一步对准确性进行优化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值