程序终止后有没有办法保存输入信息?

时间:2013-11-14 18:05:23

标签: java swing joptionpane

我对Java很新,刚刚在八月开始上高中班级。我仍在学习基本信息,并对基础知识有一般性了解,例如JOptionPane,Scanner,Array和系统行。我的问题是,是否有办法创建一个独立的Java程序,您只需双击桌面上的图标即可启动它。如果是这样,有没有办法创建一个文件转储,你只能通过密码访问它?我已经有一个基本的登录程序,允许基于预定的用户和密码进行访问。这个程序的目标是在有意拥有它的人之间创建一个安全的(即使它是基本的)文件共享,并保留那些不包含特定文件的人(.docx,.jpeg,.pptx等)。 。)用于学校工作。如果是这样,是否还有一种方法可以限制只能通过此程序访问这些文件?

这是我到目前为止的代码:

import javax.swing.JOptionPane.*;
import java.lang.Math.*;
import java.lang.System.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.JFrame;

public class UserLog extends JFrame  

{

public static void main(String[]Args) throws InterruptedException 
    {
    boolean isValid=false;
    while(!isValid)
        {
    // Components related to "login" field    
    JLabel label_loginname = new JLabel("Enter your login name:");    
    JTextField loginname = new JTextField(15);    
    // loginname.setText("EnterLoginNameHere"); 
    // Pre-set some text    
    // Components related to "password" field    
    JLabel label_password = new JLabel("Enter your password:");    
    JPasswordField password = new JPasswordField();    
    // password.setEchoChar('@'); 
    // Sets @ as masking character    
    // password.setEchoChar('\000'); 
    // Turns off masking    
    JCheckBox rememberCB = new JCheckBox("Remember me");

    Object[] array = {label_loginname,
    loginname,                       
    label_password,                       
    password,                       
    rememberCB};
    Object[] options = {"Login", "Cancel"};
    int res = JOptionPane.showOptionDialog(null,
                                            array,
                                            "Login",
                                            JOptionPane.YES_NO_OPTION,
                                            JOptionPane.QUESTION_MESSAGE,
                                            null,     //do not use a custom Icon
                                            options,  //the titles of buttons
                                            options[0]); //default button title

    // User hit Login    
    if (res == 0) 
        { 
            System.out.println( "Login" ); 
        }    
    // User hit CANCEL    
    if (res == 1) 
        { 
            System.out.println( "Canceled" ); 
        }    
    // User closed the window without hitting any button    
    if (res == JOptionPane.CLOSED_OPTION) 
        { 
            System.out.println( "CLOSED_OPTION" ); 
        }


    // Output data in "login" field, if any    
    String newloginname = loginname.getText();    
    String newpassword = new String(password.getPassword());    
    if (newloginname.equalsIgnoreCase("Cody_Coulter") && newpassword.equals("cheche1"))
        {
            System.out.println("Login Successful!");
            boolean selectedCB = rememberCB.isSelected();    
            System.out.println( "selectedCB: " + selectedCB );
            Thread.sleep(3000);
            Object[] array1= {"It's about time to choose"};
            Object[] options1= {"Leave", "Keep Going"};
            int res1 = JOptionPane.showOptionDialog(null,
                                            array1,
                                            "There",
                                            JOptionPane.YES_NO_OPTION,
                                            JOptionPane.QUESTION_MESSAGE,
                                            null,     //do not use a custom Icon
                                            options1,  //the titles of buttons
                                            options1[0]); //default button title
            if(res1==1)
                {
                    String name1 = JOptionPane.showInputDialog(null,
                                                        "What is your name?");
                    int length = 0;
                    length = newpassword.length();
                    String Pass = "*";
                    newpassword =newpassword.replaceAll(".","*");
                    System.out.println("Username: "+newloginname+"\nPassword: "+
                                        newpassword+"\nName: "+name1);
                }

        }
    else {
            JOptionPane.showMessageDialog(null,"Wrong Username or Password!");
            isValid=false;
         }
        }
    // Output data in "password" field, if any    
    // Output state of "remember me" check box    

    }

}

这只是程序的登录界面,但我只想:

  • 选择编辑用户或密码,例如输入旧密码:now new:repeat:并保存新密码。
  • 创建仅通过此程序访问的文件转储,其中包含docx,pptx等基本文件
  • 如何使用管理员密码编辑用户名,密码或向程序添加新用户。
  • 如果我拥有此计划的唯一帐户而其他人想要一个帐户,那么阅读的行将是:

    Username: _____
    Password: _____
    Retype Password:_____
    Authentication: _____
    

    然后创建一个永久帐户。

对于非正统的问题感到抱歉,但我非常好奇,也对这些电路板不熟悉。我只是想知道java是否可能,如果是的话,我可以在哪里引用这些材料来学习/自学。

1 个答案:

答案 0 :(得分:0)

是的,这是可能的,但我认为在一篇文章中有太多的事情要回答。

您应该了解Java Core Library中的Scanner类。使用Scanner类,您可以读取文件。在这里搜索一些提示。使用扫描程序,您可以拥有一个写入密码的文件(保护文件受保护),您可以通过重写文件上的密码(以及从同一文件中读取)来更改密码。