前言

编译器:Eclipse IDE(2017)

运行环境:JRE 8

GUI开发工具:JavaFX

可视化界面构造插件:JavaFX Scene Builder 2.0(利用此插件完成对界面的布局操作)

一、系统环境配置

JRE 8 + JAVAFX + scenebuilder已经被作者配置好并压缩至压缩包中,有小伙伴想要的话 关注+点赞+评论区扣1 即可领取。
如下图所示点击eclipse即可进行编程,不需要额外配置环境(包括下载scenebuilder和在eclipse中下载JAVAFX),但gson安装包需要额外配置,这方面老师应该会讲。

二、系统页面展示

1.登录页面

选择身份,输入账号密码即可登录

2.生活管家页面

选择生活管家,输入生活管家的账号与密码正确可以来到生活管家页面。可以进入会员,房屋入住管理页面,以及修改密码,退出。

3.会员管理页面

会员管理实现的功能:
【应用场景】:用于维护社区会员的基本信息。会员基本信息包括:姓名、性别、出生日期、手机、身份证、联系人、联系人电话、会员类型、备注等。
【操作描述】:查询、新增、修改、删除、刷新、申请等。
【新增】:点击“新增”按钮,显示输入会员信息页面,输入会员的基本信息后,弹出弹窗,点击“确定”按钮,提示成功注册。
【修改】:选中需要修改的会员信息,下方出现可修改的信息项,输入修改的信息,点击“修改”按钮,修改成功。
【删除】:选会员信息后,点击“删除”按钮,输出所选中的会员信息。
【查询】:在查询框中输入要查询的数据,鼠标移除自动查询会员的每项基本信息是否包含查询框的数据,如果包含,则显示查询的结果。可以实现编号、年龄、身份证号、类型、联系人、联系人电话查询。
【刷新】:显示查找步骤之前的表格。
【申请】:可为选中会员申请场所设施和班车。
【保存】:将对表格的修改保存到文件中。
【退出】:页面到达生活管家页面。

4.申请页面

可以申请场所设施和班车,场所设施和班车在一个一体化页面中,点击场所设施和班车,选择会员需要的场所设施和班车,点击申请,即可完成申请。
选择场所设施点击申请后,会弹出时间段页面,点击一个时间段,即可完成申请。如果会员已经预约过,则不能申请,并弹出弹窗。时间段数据库每天都会更新一次(通过比较最后一次运行日期和现在日期,如不一致,则打印空字符串到数据库中)。

5.房屋管理页面

【应用场景】:为注册的会员提供楼盘信息,供会员购买楼盘。楼盘信息展示所有的楼盘,已购买的楼盘不可以被购买,每个会员限购一个了楼盘。
【操作描述】:新增节点,维护房间,删除,统计, 保存。
【新增节点】: 右击小区,楼盘,楼号,单元节点,可以显示新增对应的菜单,当父节点不存在时,不可以直接创建子节点,在菜单中填写对应的名称后,点击“确认”按钮,成功创建房屋。
【维护房间】:维护房间的功能就是将房子卖给会员,选中相应的房间后,点击维护房间,显示出房间的位置和类型,选择购买房间的人,房屋状态,移交时间后点击“确定”按钮,系统自动判断房屋是否已经卖出,购买人时是否已经购买过,如果房屋已经卖出或此人已经买过,则系统判定不通过,维护失败,否则维护成功。
【删除】:点击“删除”选择相应的楼盘,楼号,楼层或房间。点击“删除”按钮,如果此节点是最后的节点,则可以删除,如果有子节点,则删除失败。
【统计】:点击“统计”按钮,会展示出每个楼盘的小区数量、楼号数量、单元数量、房间数量。
【保存】:将数据保存到文件中。
【退出】:退出页面,到达生活管家页面

6.入住管理页面

【应用场景】:此系统为针对老年人的社区,会员基本为老年人,当购买房屋后,可以填写入住信息,入住基本信息有:入住人名称,联系会员,关系,手机号,年龄,性别,入住开始时间,入住结束时间等。
【操作描述】:登记,修改,删除,查询。
【登记】:点击“登记”按钮,填写入住人基本信息,点击“确定”按钮,完成入住登记。
【修改】:选择一条入住信息,点击“修改”按钮,跳转相应的修改页面,输入修改的信息后,点击“确定”按钮,完成对信息的修改
【删除】:选择一条或多条信息后,点击“删除”按钮,删除相 应的信息。
【保存】:将数据保存到文件中。
【查询】:可以实现性别年龄,关系,姓名查询。
【日期查询】:输入开始入住起始日期和开始入住截止日期,或输入截止日期开始日期和截止日期截止日期,或全部输入,即可完成查询。
【刷新】:显示查询或日期查询之前的页面。
【退出】:退出页面到达生活管家页面。

7.场所设施管理

【应用场景】:场馆主要作为老人的休闲娱乐的地方,场馆基本信息包括:场馆名称,门牌号、特别说明、开放时间、联系电话、场馆位置、场馆类型、负责人等。
【操作描述】:修改、新建、删除,搜索,保存,刷新
【新建】:点击“新建”按钮,在新建页输入场馆基本信息后,点击“确定”按钮,新建成功。
【删除】:选择一条或多条场馆信息后,点击“删除”按钮,删除选中的信息。
【修改】:选中需要修改的场馆,点击“修改”按钮,填写修改的信息后,点击“确定”按钮,修改成功。
【搜索】:可以实现场馆名称,门牌号、联系电话、场馆位置、场馆类型、负责人查询。
【保存】:将数据信息保存到文件中去。
【刷新】:显示搜索操作之前的表格数据。

8.班车路线管理

【应用场景】:后勤管家来进行班车的基本信息的维护。班车的基本信息包括:路线代码,路线名称,路线方向,预约截止日期,班车发车日期,发车时间,发车地点,最大容纳人数。
【操作描述】:新增,修改,删除,显示班车乘客,清理超过发车时间的发车信息,保存。
【新增】:点击“新建”按钮,输入班车基本信息,点击“添加”按钮,完成班车基本信息的添加。
【修改】:选中一条班车信息,修改相应的基本信息,点击“修改”按钮,完成对班车信息的修改。
【删除】:选中一条班车信息,点击删除按钮,删除所选中的班车信息。
【查看乘客信息】:选择一辆班车信息,点击“查看乘客信息”按钮,展示出所有预约了该车的乘客。
【清理超过发车时间的班车信息】:点击相应按钮,可以在表格中清理超过发车时间的班车信息。
【保存】:将数据信息保存到文件中。

9.用户管理页面

【应用场景】:用户管理主要用来维护社区服务人员基本信息,为服务人员分配相应的权限,修改服务人员的信息,增加删除生活管家所管理的入住人信息。服务人员分为生活管家和后勤管家,基本信息包括:账号、密码、姓名、性别、出生日期、联系电话和相应的权限。
【操作描述】: 新增,修改,删除,搜索,。
【新增】:点击“新增”按钮,输入服务人员基本信息后,点击“确定”按钮,完成用户创建。
【修改】:选中一个服务人员,下方会显示相应的信息,修改之后,点击修改修改成功。
【删除】:选中数据后,点击“删除”按钮,删除所选数据。
【保存】: 将数据保存文件中。
【查询】:可以查询账号、密码、姓名、性别、联系电话和相应的权限。
【刷新】:在表格中显示查询操作前内容。
【退出】:退出到统一身份认证页面中。

三、系统结构

如下图所示,Controller包中的类负责接收页面与用户的交互并做出回应,Model包中的类负责执行具体操作,View包中的类负责存放scenebuilder绘制的交互页面和Main类。除此之外data包中存放JSON文件,image包中负责存放图片,而lib包中负责存放scenebuilder包和gson包。

四、UI界面设计

UI设计是老师给分的重要一环,建议使用墨刀网站提前设计好然后截屏。之后使用PS进行调整,然后使用scenebuilder导入图片即可。

scenebuilder使用教程如下:

-scenebuilder基本功能介绍

-scenebulider设计界面与Controller包中类绑定教程

-ChoiceBox控件介绍

-TableColumn控件介绍

-TreeView控件介绍

五、JSON使用介绍

文件操作类完整代码如下所示

package Model_File;import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.List;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import Model.Senior;/*** 会员文件操作类* @author wjz**/
public class SeniorFile {private static SeniorFile seniorFile;private SeniorFile() {}/*** 获取单例对象* @return*/public static SeniorFile getseniorFile() {if(seniorFile != null) {return seniorFile;}return null;}/*** 从文件中读取Json字符串,并将字符串转化成对象* @return 会员对象* @throws IOException*/public static List<Senior> seniorJson() throws IOException {List<Senior> seniors  =  new ArrayList<Senior>();String jsonStr = null;try {jsonStr = new String(Files.readAllBytes(FileSystems.getDefault().getPath("data/Senior.json")),"UTF-8");} catch (IOException e) {e.printStackTrace(); }if (jsonStr != null && !jsonStr.equals("")) { Gson gson = new GsonBuilder().setPrettyPrinting().setDateFormat("yyyy-MM-dd").create();seniors.addAll(gson.fromJson(jsonStr, new TypeToken<List<Senior>>() { }.getType()));}else {seniors = new ArrayList<Senior>();}return seniors;
}
/*** 获取部分会员,可以实现一个生活管家只能获得他/她所管理的会员集合* @param seniorline 全部会员集合* @return 部分会员集合* @throws IOException*/public static List<Senior> partSeniors(String seniorline) throws IOException{List<Senior> wholeseniors = seniorJson();List<Senior> partseniors = new ArrayList<Senior>();for(Senior senior : wholeseniors ) {if(senior.getManager().equals(seniorline)&& seniorline != null) {partseniors.add(senior);}  }return partseniors; }/*** 将会员对象集合存贮到文件中* @param saveSeniors* @throws IOException*/public static void seniorSave(List<Senior> saveSeniors) throws IOException {GsonSave.save(saveSeniors,"data/Senior.json");}}

文件存储类完整代码如下所示

package Model_File;import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.StandardOpenOption;/*** 用来将对象转化成字符串存贮* @author wjz**/
public class GsonSave {
/*** 比较Json字符串是否相等* @param object1 对象1* @param object2 对象2* @return*/public static boolean equalJson(Object object1, Object object2) {Gson json = new Gson();String line1 = json.toJson(object1);String line2 = json.toJson(object2);if(line1.equals(line2)) {return true;}elsereturn false;}/*** 将对象序列化后存储到文件中* @param object 对象* @param filename 文件名称*/public static void  save(Object object, String filename)  {FileWriter fr;try {fr = new FileWriter(filename);fr.write("");fr.flush();fr.close();} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}Gson gson = new GsonBuilder().setPrettyPrinting().setDateFormat("yyyy-MM-dd").create(); String jsonStr = gson.toJson(object);try {Files.write(FileSystems.getDefault().getPath(filename),jsonStr.getBytes(Charset.forName("utf-8")), StandardOpenOption.CREATE);} catch (IOException e) {e.printStackTrace();}}
}

gson基本介绍与使用请点击下链接

-JAVA编程gson基本介绍与使用

六、注意事项

1.本文只介绍项目结构、UI设计和文件读取与存储。Model类中的编程与交互应该在JAVA这门课中就已经掌握故不一一赘述。
2.想要压缩包和具体项目的 关注+点赞+评论区扣1 我会一一私信联系,百度网盘下载太慢,还是QQ比较快。
3.UI要做的好看需要熟练掌握PS和scenebuilder,希望不要最后3天才开始项目,设计UI很费时。此外可以多多参考别的软件。
4.如果有疑问欢迎大家在评论区留言。

东北大学大一下暑期实训项目--活力长者社区(JAVAFX+scenebuilder)相关推荐

  1. 【个人项目】东北大学软件学院2020级2021年夏季实训项目——东软颐养社区系统

    ps:没想到过了一年这么多学弟来问,看来今年的实训题也没变? 补档:https://cloud.189.cn/t/ZnuiQjQNz67j (访问码:7i6c) 写在前面: 这个项目是大一暑期的实践项 ...

  2. 暑期实训项目(2)--推特爬虫数据处理

    后端数据爬虫--Twitter 1. 爬虫的目标 2. 爬虫的思路 2.1 步骤 2.2 几个选择 2.2.1 Scarpy+ Selenium 2.2.2 没有使用Twitter API 3. 爬虫 ...

  3. 国开电大 公共关系学 形考任务答案 实训项目

    形考任务1 题目1公共关系是一门综合性的应用科学. 正确答案是:对 题目2公共关系特指组织与公众之间的传播沟通关系. 正确答案是:对 题目3美国学者香农提出了双向循环的传播模式. 正确答案是:错 题目 ...

  4. 中国探月计算机考试时间,关于选拔2020年波兰罗兹大嫦娥三号登月时间 学暑期实习实训项目学员的通知...

    具体如下: 一. 2020 年暑期学习项目简介 1. 项目名额:学生自主申报,如不遵照学院统一安排和临时退出,自费 10 名, 2. 项目费用: 900 欧元 / 人. 将严格遵循学院行程安排, 6. ...

  5. 暑期实训总结_李小倩

    暑期实训总结 姓名:李小倩  学号:111307105 班级:CSDN-java班 年级:2011级 转眼间实训已经结束有些时间了,我想这个实训对于我们参与的每一个人来说都是一段美好快乐的记忆.记得距 ...

  6. 暑期实训心得及总结_史国旭

    暑期实训心得及总结                     姓名:史国旭  学号:111307168 班级:CSDN-java 年级:2011级 转眼间实训已经结束4天了,我想这个实训对于我们参与的每 ...

  7. 实训项目2Linux基本命令,实训项目2 Linux文件系统管理

    实训项目2 Linux文件系统管理 发布时间:2011-06-24 15:51:10来源:红联作者:397778823 一. 实训目的: 1. 掌握磁盘分区的方法: 2. 掌握文件系统的建立.挂装.解 ...

  8. 实训项目——多语言学习app 总结报告

    文章目录 实训项目--多语言学习app 总结报告 1. app 介绍 1. 运行app 2. 界面效果 2. 开发过程 1. 开发环境 2. 项目结构 3. 欢迎界面 4. 用户与学习界面 5. 语言 ...

  9. Java实训项目一一拼图游戏(附源码)

    1 实训基本信息 1.1 实训项目名称 (1)拼图游戏 1.2 实训环境 本次实训内容主要针对专业学生,实训形式以实战讲解为主导.实训课程由实训老师主讲,实训老师教学严谨又平易近人,讲解的内容非常细致 ...

最新文章

  1. 【51CTO学院三周年】51cto学院的大数据培训之心路历程
  2. 怎么把本地项目和远程git仓库相连通
  3. 改变文件的所有者和所在组
  4. 5分钟安全顾问 - 针对家庭办公室用户的简单防火墙安装
  5. objective-c 中字符串与日期相互转换
  6. 打开360浏览器显示无法连接服务器,电脑360浏览器打不开网页是什么原因 检查一下是不网络问题...
  7. spark用scala读取hive表数据(不同版本区别)
  8. k8s学习笔记-调度之Affinity
  9. Modbus协议模型
  10. linux 开源谷歌浏览器_开发人员浏览器,Google开源版本等
  11. 面向对象程序设计概述(金老师第一讲)
  12. IDEA 这样配置注释模板,让你高出一个逼格!
  13. 知名应用背后的第三方开源项目
  14. Centos学习笔记 linux 常用命令:压缩解压命令
  15. python3视频教学_Python3入门基础视频课程(下)
  16. matlab读取图像的RGB
  17. 搜索引擎优化的九大方法
  18. 2022年小游戏----游戏背包系统之搭建背包UI
  19. 百宝云数据防破解分析
  20. 广告系统,业务与架构细节

热门文章

  1. 复数域内的微分解法(温度扩散模型)
  2. 【OpenCV】KeyPoint数据结构
  3. ADB投屏_知乎安卓手游投屏直播教程
  4. 中国十大高薪职业出炉
  5. BurpSuite pro v2020.1 最新版本,看到这些新功能后我心动了
  6. 中国防火墙行业创新战略及十四五投资规划分析报告2022-2027年
  7. linux * 10 * * * *,Linux 上安装RealPlayer10.0 (*.bin)
  8. 数字政府应用场景中数据安全体系
  9. iOS 币行(BTC 、LTC、LTH、ETC) 简介
  10. 使用 Apache Commons CLI 解析命令行参数示例