1.站立式会议
1.1 会议照片
1.2 会议内容
昨天已完成的工作:
昨天已基本实现用条形图,折线图,饼图展示数据界面功能。
今天计划完成的工作
项目模块 | 需要实现的功能 | 负责人 | 预计用时 |
---|---|---|---|
主界面模块 | 整合代码,查漏补缺 | 王伊若 | 5h |
主界面模块 | 主界面设计 | 王伊若 | 2h |
主界面模块 | 查询界面功能 | 黄锐 | 2h |
主界面模块 | 账目展示功能 | 江佳哲 | 2h |
主界面模块 | 用户信息界面 | 叶尔森 | 5h |
工作中遇到的困难:经过这几天的努力,今天基本没有出现大问题,只是在最后整合的时候,有队友修改了一点小细节,但是忘记commit,导致出现Bug,好在迅速找到问题,并且解决了。
2.项目燃尽图
3.模块的最新(运行)截图:
添加分类功能:(由于添加收入分类,支出分类同理,这里仅列举支出类别)
“添加支出”监听器代码如下:
/*** ”添加支出“按钮的事件监听器** @param event 事件*/public void addOutputButtonEvent(ActionEvent event) {// 获取用户输入的支出分类名称String output = outputClassificationNameTextField.getText();// 判断用户是否输入为空if (null == output || "".equals(output)) {SimpleTools.informationDialog(Alert.AlertType.WARNING, "提示", "警告", "文本框内容不能为空!");} else {// 列表视图添加用户输入的支出分类重名outputClassificationListView.getItems().add(output);// 封装要添加的分类实体类数据Classification classification = new Classification(output, "支出");// 进行添加操作boolean b = classificationDao.addClassification(classification);outputClassificationNameTextField.setText("");}
}
“删除支出”监听器代码如下:
/*** “支出”右键菜单“删除”的事件监听器** @param event 事件*/public void output_deleteMenuItemEvent(ActionEvent event) {// 获取用户选中的支出分类String outputItem = (String) outputClassificationListView.getSelectionModel().getSelectedItem();// 确认用户是否要删除boolean b = SimpleTools.informationDialog(Alert.AlertType.CONFIRMATION, "确认", "确认", "请问是否确认删除名为" + outputItem + "的支出分类?");if (b) {// 从列表视图中移除该分类outputClassificationListView.getItems().remove(outputItem);// 从数据库中删除该分类classificationDao.deleteClassification(new Classification(outputItem, "支出"));}}
“编辑支出”监听器代码如下:
/*** “支出”右键菜单“编辑”的事件监听器** @param event 事件*/public void output_editContextMenuEvent(ActionEvent event) {outputClassificationListView.setCellFactory(TextFieldListCell.forListView());outputClassificationListView.setEditable(true);outputClassificationListView.setFocusTraversable(true);}
/*** “支出”分类列表视图编辑完成的事件监听器** @param stringEditEvent 事件*/public void outputClassificationListViewCommitEvent(ListView.EditEvent<String> stringEditEvent) {// 获取列表视图选中的原值String sourceValue = stringEditEvent.getSource().getSelectionModel().getSelectedItem();// 获取列表视图编辑后的新值String newValue = stringEditEvent.getNewValue();// 向列表视图移除原值outputClassificationListView.getItems().remove(sourceValue);// 向列表视图添加新值outputClassificationListView.getItems().add(newValue);// 向数据库更新值classificationDao.updateClassification(newValue, sourceValue);}
用户信息界面功能
将用户信息显示出来
/*** 初始化界面*/public void initialize() {// 获取用户信息User user = userDao.selectUserById(Session.getUser().getUserId());userImage.setImage(new Image("file:/" + user.getUserImagePath()));nameTextField.setText(user.getUserName());idTextField.setText(String.valueOf(user.getUserId()));passwordTextField.setText(user.getUserPassword());}
修改密码,将用户输入的新密码更新在数据库表中
/*** ”修改“按钮的事件监听器** @param event 事件*/public void alterButtonEvent(ActionEvent event) {if (newPasswordTextField.getText().length() == 0) {SimpleTools.informationDialog(Alert.AlertType.WARNING, "提示", "警告", "新密码不能为空!");}if (confirmNewPasswordTextField.getText().length() == 0) {SimpleTools.informationDialog(Alert.AlertType.WARNING, "提示", "警告", "确认密码不能为空!");}if (SimpleTools.MD5(newPasswordTextField.getText()).equals(SimpleTools.MD5(confirmNewPasswordTextField.getText()))) {String password = SimpleTools.MD5(confirmNewPasswordTextField.getText());boolean b = userDao.updateUser(new User(Session.getUser().getUserId(), Session.getUser().getUserName(), password, Session.getUser().getUserImagePath()));if (b) {boolean isSuccess = SimpleTools.informationDialog(Alert.AlertType.INFORMATION, "提示", "信息", "密码修改成功!");if (isSuccess) {alterPasswordVBox.setVisible(false);alterPasswordCheckBox.setSelected(false);}} else {SimpleTools.informationDialog(Alert.AlertType.ERROR, "提示", "错误", "密码修改失败!");}} else {SimpleTools.informationDialog(Alert.AlertType.WARNING, "提示", "警告", "新密码和确认密码必须相同!");}
}
更改用户头像:
/*** 点击图片更改图片** @param mouseEvent 事件*/public void alterImageViewEvent(MouseEvent mouseEvent) {String importPath = null;//实例化文件选择器FileChooser fileChooser = new FileChooser();//设置默认文件过滤器fileChooser.setSelectedExtensionFilter(new FileChooser.ExtensionFilter("图片", "jpg", "jpeg", "png"));//打开文件选择框,并得到选中的文件File result = fileChooser.showOpenDialog(null);// 判断用户是否选中文件if (result != null) {importPath = result.getAbsolutePath();// 数据库保存路径需要进行转义,否则斜杠会消失String s = importPath.replaceAll("\\\\", "\\\\\\\\");userImage.setImage(new Image("file:/" + importPath));// 封装要更新的实体类对象User user = new User(Session.getUser().getUserId(), Session.getUser().getUserName(), Session.getUser().getUserPassword(), s);userDao.updateUser(user);}}
4.每人每日总结
成员 | 总结 |
---|---|
王伊若 | 化压力为动力,冲啊! |
黄锐 | 继续加油啊啊啊 |
江佳哲 | 再接再厉,继续努力 |
叶尔森 | 想不到最后还是在改bug |