Java - 将信息连续传递到新窗口是否正确?

时间:2016-01-07 18:54:31

标签: java user-interface

我刚刚完成Java作为大学课程并且迄今为止只参与过一个小组课程,所以我的Java知识非常有限。我正在尝试根据自己的需要开发自己的Java程序(独立于学校项目),我有几个概念问题。

我正在制定健身计划。用户必须创建帐户(暂时存储在本地)。创建帐户后,用户可以登录系统并创建一个例程供他们遵循。例程的定义是锻炼计划,因此例如全身锻炼分组是常规,而胸部日/背日/手臂日是单独的例程。每个例程由一系列锻炼组成,每个锻炼由一系列锻炼组成。所以回顾一下,例如胸部日/背日/手臂日例:

常规是:胸部日/背日/手臂日

此例程的锻炼包括:胸部锻炼,背部锻炼和手臂锻炼

胸部锻炼的练习可以是:卧推,哑铃按压,Flyes 背部锻炼的练习可以是:硬拉,拉出下拉,行 手臂锻炼的练习可以是:卷发,三头肌扩展和下拉

希望这足以说明你们要理解我想要创造的要点。

目前,用户存储在我的Subcontroller类中的Person类型(其中每个人都有名称,密码和一些健康信息)的ArrayList中。我知道这不是最安全的方式,但我正在努力简化并尝试更多地理解编程,然后再转向更高级的概念。

程序运行后,用户即可创建帐户。一旦他们登录到该帐户,当他们按下“登录”按钮时,我使用循环在ArrayList中查找他们的用户名,并尝试将输入的密码与ArrayList中找到的对象中的密码相匹配。如果它匹配(验证成功),那么我打开一个新窗口,我称之为“LoggedIn”。这个窗口有一个简单的问候标签,还有一些按钮用于创建例程,查看当前例程,编辑/添加锻炼和练习。

1)将这些用户存储在Person类型名为“users”的ArrayList中是不对的?这将导致我将来有什么缺点?我应该在纯文本文件中存储登录吗? 2)随着我对程序的深入研究,以及基于用户点击创建更多窗口,我注意到在创建新窗口时我必须不断传递子控制器和用户名,因为我需要在新窗口中访问该信息。例如,如果Bob登录,则创建的窗口为:

主GUI(登录屏幕) - > LoggedIn(有一个问候语和一个创建例程按钮,假设Bob按下Create Routine) - > CreateRoutine GUI(只是一个带有常规名称文本区域的窗口,还有一个OK按钮,用于创建具有该名称的例程并将该例程分配给Bob的用户)。

源自主GUI的用户名信息(来自用户名字段),然后传递给LoggedIn(在问候消息标签中写入用户名称时需要)。

我的子控制器有一个createRoutine(String routineName,String userName)方法,该方法将被赋予例程名称,以及创建例程的人员,创建此例程,然后将此例程分配给创建它的用户。

因此,在CreateRoutine GUI中,我调用这个createRoutine()方法,并且必须为它提供routineName和userName。

但是,此方法来自子控制器,因此我必须将子控制器传递给CreateRoutine GUI的实例。另外,我必须传入用户名(因为createRoutine()方法需要它。

我注意到我越来越深入(例如,用户将创建越来越多的顺序窗口),我总是不得不将某些信息传递给所需的窗口初始化。有没有办法解决?这是怎么回事?我觉得我的程序非常混乱。我想简化这个问题 - 我是否应该继续将我的子控制器或用户名称传递给新创建的窗口,因为我需要它?我没有办法随时随地访问它而不传入它吗?

谢谢你们。

0 个答案:

没有答案