自动记录上次登陆成功的用户信息

本文介绍了一个简单的Java程序,用于自动记录用户的登录名和密码到RMS中,以便下次登录时可以自动填充这些信息。该程序利用了RMS的断电非易失性特点。

         站在用户的角度来思考问题,用户需要的永远是方便、快捷的操作功能,所以有些时候自动记录上次登陆成功的用户名和密码也就不可避免了。

         以下代码实现了这个功能,把上次登陆成功的用户名和密码记录在RMS里,因为RMS是保存在ROM里的,具有断电非易失性。

        private class TextForm extends Form implements CommandListener {
            Command loginCom = new Command("登陆",Command.OK,0);
            Command backCom = new Command("返回",Command.BACK,1);
            int temp;
            String Myname,Mypassword,s;
            public TextForm(){
                super("登陆界面");
                 try{
                     temp = rs.getNumRecords();
                 }catch(Exception e){e.printStackTrace();}
                if(temp!=0){
                    try{
                       s = decode(rs.getRecord(temp));
                    }catch(Exception e){e.printStackTrace();}
                    Myname = s.substring(0,s.indexOf("&"));
                    s = s.substring(s.indexOf("&")+1);
                    Mypassword = s;
                    userName = new TextField("       用户名 :",Myname,10,TextField.ANY);
                    passWord = new TextField("          密码 :",Mypassword,10,TextField.ANY);
                }else{
                    userName = new TextField("       用户名 :","",10,TextField.ANY);
                    passWord = new TextField("          密码 :","",10,TextField.ANY);
                }
                append(userName);
                append(passWord);
                addCommand(loginCom);
                addCommand(backCom);
                setCommandListener(this);
              
            }

            public void commandAction(Command c, Displayable g) {
                if(c == loginCom){
                    if(userName.getString().length()!=0&&passWord.getString().length()!=0){
                       
 
                       
                        setCommand("LogonAction",userName.getString()+"&"+passWord.getString());
                        getCommand();
                        try{
                           client.send(com);
                        }catch(Exception ex){
                           ex.printStackTrace();
                        }
                        gameMode = 4;
                        initFlag = true;
                        display.setCurrent(r);
                       
                        setCommand("QryRoomsAction",null);
                        getCommand();
                        try{
                           client.send(com);
                        }catch(Exception ex){
                           ex.printStackTrace();
                        }
                       
                       
                        tempName = userName.getString();
                        tempPassword = passWord.getString();
                    }else{
                        Alert alert = new Alert("警告","用户名和密码不能为空",null,AlertType.ERROR);
               alert.setTimeout(Alert.FOREVER);
               display.setCurrent(alert);
                    }
                }else if(c == backCom){
                        gameMode = 1;
                        display.setCurrent(r);
                }
            }
        } 



Trackback: http://tb.blog.youkuaiyun.com/TrackBack.aspx?PostId=1047287


### PySimpleGUI FileBrowse 自动保存和加载上次文件路径 在 PySimpleGUI 中,可以通过 `FileBrowse` 元素实现自动记录上次打开的文件路径的功能。具体来说,可以利用 Python 的内置模块(如 `os.path` 和 `json` 或者简单的变量存储)来保存上一次用户选择的文件路径,并将其作为下一次弹窗的初始目录。 以下是完整的解决方案: #### 方法概述 为了实现这一功能,可以在程序启动时读取之前保存的路径信息,并将其传递给 `initial_folder` 参数[^1]。当用户完成文件选择后,更新该路径并重新写入到持久化存储中(例如 JSON 文件或配置文件)。这样,在下次运行程序时即可恢复之前的路径设置。 #### 示例代码 下面是一个具体的实现例子,展示了如何通过 `FileBrowse` 记录上次使用的文件夹路径: ```python import os import json import PySimpleGUI as sg # 定义函数用于加载/保存上次访问的路径 def load_last_path(file="last_path.json"): """尝试从JSON文件中加载最后的路径""" try: with open(file, 'r') as f: data = json.load(f) return data.get('path', '') except FileNotFoundError: return '' def save_last_path(path, file="last_path.json"): """将当前路径保存至JSON文件""" with open(file, 'w') as f: json.dump({'path': path}, f) # 加载上次的路径 last_used_path = load_last_path() layout = [ [sg.Text("请选择一个文件:")], [sg.Input(key="-FILE-", default_text=last_used_path), sg.FileBrowse(initial_folder=os.path.dirname(last_used_path) or None)], [sg.Button("提交"), sg.Button("取消")] ] window = sg.Window("文件浏览示例", layout) while True: event, values = window.read() if event == sg.WINDOW_CLOSED or event == "取消": break if event == "提交": selected_file = values["-FILE-"] # 如果选择了有效的文件,则保存其所在目录 if selected_file and os.path.isfile(selected_file): last_dir = os.path.dirname(selected_file) save_last_path(last_dir) sg.popup(f"已成功保存新路径:\n{selected_file}") window.close() ``` 上述代码实现了以下逻辑: 1. **加载历史路径**:程序初始化阶段会调用 `load_last_path()` 函数检查是否存在名为 `last_path.json` 的文件;如果存在则提取其中的内容作为默认路径[^2]。 2. **动态调整初识位置**:基于加载的历史数据设定 `FileBrowse` 组件的 `initial_folder` 属性值[^3]。 3. **保存最新路径**:每当用户确认所选文件之后,都会触发回调机制去更新本地缓存中的记录。 #### 注意事项 需要注意的是,此方案依赖于外部文件来进行状态保持。因此要确保应用程序拥有足够的权限能够正常读写指定区域内的资源文件。另外还可以考虑其他形式的状态管理策略比如数据库表项或是注册表键值等等替代单纯依靠平面文档的方式。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值