项目思路记录

1. 统一用一个hideEverything方法隐藏所有 “需要被隐藏的控件” ,在需要的地方调用(如隐藏:Label等)。即在每次需要判断是否显示Label等组件时,调用hideEverything隐藏所有相关组件。

(定一个位置:统一写到最下面“底部”)

2. 需要大规模处理页面信息的定义一个页面方法,初始化页面、重新规划、刷新、再次载入都只使用这个方法和服务器进行交互(IO流长连接部分)

3. page (int类型) 的更新可选在数据库中,当page < 1或 page 页面为空时,回到原来的page,可通过page页面是否变化来提醒用户,是否还有上一页或下一页。当然,也可以选择在客户端判断传过来的第一个数据是否为空,空则(只用于下一页的判断,上一页>0即可)不执行更新。

4. 课程内部页面仿QQ三拼贴思路

FXML1:   MenuStudent作为最左侧菜单视图的控制类,该控制类在登录时进行初始化

FXML2:  CoursesStudent是中间用于滑动翻找课程的控制类,仅由一个VBox外套一个ScrollPane构成,将各个课程类似于以上的好友选项,写成小视图插入VBox中

FXML3: TempPage暂时充当控制类,什么都不写,只占用空间

之后用hbox.getChildren().addAll(view1, view2, view3);拼贴到一个HBox

(后续视图)

FXML: CoursePage视图,用于占据TempPage的位置,在这里写类似于QQ右侧的功能,该FXML需要将视图、控制类都存储起来,并将数据存储在Local_Data类中,根据Local_Data数据进行交互(点击课程项IO操作,通过小课程项存储的course_id进行更新)。

每个小课程视图只在内部存一个course_id,每次生成的FXML无需获取控制类(太多了,不如简化功能到其他地方),在生成时即做好渲染,只设置一个Button之类的控件,点击调用每个视图的course_id,IO操作更改FXML视图。

4. TEXT 和 Label 两个组件都是固定长度,TEXT写不到会往下书写,Label则会省略多出的字符

5. 统一用initializeFXML命名方法,进行一些FXMLLoader视图的外部初始化

6. 信息修改思路:

在信息 FXML控制类 内部存储一些数据(除了id从Local_Data存取,其他都从内部获取数据,IO交流后(在数据库中更改后)更改Local_Data数据),imagePath设为静态,再设一个静态int用于判别是教师还是学生操作(因为分了Information视图的原因)。

(更改思路2:将静态int设在AvatarReplacement中,开启设置头像窗口时调用该变量,然后在AvatarReplacement判别需要临时修改头像的是哪个Information视图)

(更改思路3,无需静态,临时获取控制类更改int flag) (将临时stage设为静态,保证无论干什么都会被关掉,防止“bug”人乱来)(也可以设为静态,静态的作用应该是,无论创建什么模板,静态的值都是更改后的,不想其他的一样会在作为模板时初始化)

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值