我对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
}
}
这只是程序的登录界面,但我只想:
如果我拥有此计划的唯一帐户而其他人想要一个帐户,那么阅读的行将是:
Username: _____
Password: _____
Retype Password:_____
Authentication: _____
然后创建一个永久帐户。
对于非正统的问题感到抱歉,但我非常好奇,也对这些电路板不熟悉。我只是想知道java是否可能,如果是的话,我可以在哪里引用这些材料来学习/自学。
答案 0 :(得分:0)
是的,这是可能的,但我认为在一篇文章中有太多的事情要回答。
您应该了解Java Core Library中的Scanner类。使用Scanner类,您可以读取文件。在这里搜索一些提示。使用扫描程序,您可以拥有一个写入密码的文件(保护文件受保护),您可以通过重写文件上的密码(以及从同一文件中读取)来更改密码。