编程灬小白 2017-05-23 15:11 采纳率: 100%
浏览 2676
已采纳

java swing编程记住密码

运行登录界面,勾选记住密码框,下次运行界面如何自动勾选,注:不是默认勾选 请大神解答

try {
            Properties pro=new Properties();
            InputStream is=this.getClass().getResourceAsStream("/Dl.properties");
            pro.load(is);
            String suser =  pro.get("user").toString();
            String spsswd = pro.get("password").toString();
            if(!suser.isEmpty() && !spsswd.isEmpty()){
                comboBox.setSelectedIndex(listuser.indexOf(suser));
                passwordField.setText(spsswd);
            }
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }

        final JButton btnNewButton = new JButton("");
        btnNewButton.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                int nub = comboBox.getSelectedIndex();
                String user = loginuser[nub];
                String psswd = passwordField.getText();
                System.out.println("登录名为-"+user+",密码为-"+psswd);
                int flag = dlserversx.checkUser(user, psswd);
                if(flag==1){
                    if(chckbxNewCheckBox.isSelected()){
                        Properties props = new Properties();
                        try {
                            OutputStream fos=new FileOutputStream(this.getClass().getResource("/Dl.properties").getPath());
                            props.setProperty("user", user);
                             props.setProperty("password", psswd);
                             props.store(fos, "Update '" + user + "' value"); 
                             fos.close(); 
                        } catch (FileNotFoundException e1) {
                            // TODO Auto-generated catch block
                            e1.printStackTrace();
                        } catch (IOException e1) {
                            // TODO Auto-generated catch block
                            e1.printStackTrace();
                        }
                    }else{
                         Properties props = new Properties();
                         OutputStream fos;
                         try {
                            fos = new FileOutputStream(this.getClass().getResource("/Dl.properties").getPath());
                            props.setProperty("user", "");
                             props.setProperty("password", "");
                             props.store(fos, "Update '" + user + "' value"); 
                             fos.close();
                        } catch (FileNotFoundException e1) {
                            // TODO Auto-generated catch block
                            e1.printStackTrace();
                        } catch (IOException e1) {
                            // TODO Auto-generated catch block
                            e1.printStackTrace();
                        }
                    }
                    Dpsk frame = new Dpsk();
                    frame.setVisible(true);
                    Dl.this.hide();
                }else{
                    JOptionPane.showMessageDialog(null, "您输入的账号或密码错误!");
                }
            }
            @Override
            public void mouseEntered(MouseEvent e) {
                btnNewButton.setIcon(new ImageIcon("../dldw/src/image/loginquedingC.png"));
            }
            @Override
            public void mouseExited(MouseEvent e) {
                btnNewButton.setIcon(new ImageIcon("../dldw/src/image/loginqueding.png"));
            }
        });
        btnNewButton.setIcon(new ImageIcon("../dldw/src/image/loginqueding.png"));
        btnNewButton.setBounds(115, 253, 180, 31);
        contentPane.add(btnNewButton);

        chckbxNewCheckBox = new JCheckBox("记住密码");
        chckbxNewCheckBox.setContentAreaFilled(false);
        chckbxNewCheckBox.setBounds(137, 212, 83, 23);
        contentPane.add(chckbxNewCheckBox);
        chckbxNewCheckBox.setOpaque(false);

  • 写回答

1条回答 默认 最新

  • threenewbee 2017-05-23 15:49
    关注

    存储一个boolean值到文件中,打开界面的时候读取它,根据它来调用setState(true或者false)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 求数学坐标画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站