我剛剛在8月份剛剛開始一個高中級課程,對於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
}
}
這僅僅是該程序的登錄屏幕,但我只是希望能夠:
- 編輯用戶或密碼通過選擇,例如輸入舊密碼:現在新密碼:重複:並保存新密碼。
- 創建轉儲文件只能通過包含基本文件,如DOCX,PPTX這個節目訪問等
- 如何編輯用戶名,密碼,或僅由具有管理員密碼新用戶添加到程序。
如果我唯一的帳戶,以這個程序,其他人想要一個,讀線將是:
Username: _____ Password: _____ Retype Password:_____ Authentication: _____
,它然後創建一個permament帳戶。
很抱歉的非正統的問題,但我非常好奇,以及新的這些板。我只是想知道是否可以用java,如果可以的話,我可以在哪裏參考材料來學習/教導自己。
是的,你可以做所有這些事情。製作獨立的Java應用程序非常簡單,只需將其導出爲JAR即可。其他的東西有點複雜,你所描述的比你的問題標題更先進。如果你還沒有使用基本的文件IO,我會說現在這是不切實際的。 – Zong
在java中從頭開始重新實現TrueCrypt當然是可行的,但教導如何做到這一點對於SO問題是一個相當大的任務。也許你可以分解你遇到的具體任務中遇到的具體問題,並提出容易給出正確技術答案的問題? – Affe
感謝您的意見。對不起,有這麼多的問題,只是不習慣這些論壇,並與他們的措辭。但是非常感謝你們,下次我肯定會採取這個措施。 – Munkeeface