【发布时间】:2018-05-01 12:34:44
【问题描述】:
我有一个用于用户登录的 GUI。
首先,用户创建他的帐户,该信息存储在.txt 文件中。我使用PrintWriter 在该文件中附加详细信息。
使用分隔符存储详细信息。我可以轻松地从文件中读取用户的每一个细节。
在登录 UI 中,JFrame 中有 2 个 JTtextField 组件,第一个用于用户名,第二个用于密码。
我使用 getText 方法获取值:
String user = user.getText();
String password = password.getText();
我尝试使用BufferedReader,但无法使用:
if(user.equals(br.readline))
我要做的是扫描文件,如果文件中的任何内容等于用户名(Frame 上用户的 getText),那么我想使用 SetVisible 转到下一帧
我的问题是,即使密码错误,用户也会进入新框架
我该如何解决这个问题?
用于检查用户和密码的代码,在 StackOverflow 上在线找到,现在仍然有效。
Scanner sc = new Scanner(new File("Details.txt"));
while(sc.hasNextLine()) {
int val =0;
String line = sc.nextLine();
if(line.indexOf(user) !=-1 && line.indexOf(pass) !=-1) {
JOptionPane.showMessageDialog(null,"Login");
val = 1;
vf.setVisible(true);
break;
} else {
JOptionPane.showMessageDialog(null,"Invalid");
val = 0;
break;
}
}
在 for 中使用的另一个代码,即使在 do while 循环中,仍然无法正常工作。
File file = new File("Details.txt");
BufferedReader br = new BufferedReader(new FileReader("Details.txt"));
String Line;
do{
if(user.equals(br.readLine()) && pass.equals(br.readLine())){
vf.setVisible(true);
} else {
JOptionPane.showMessageDialog(null,"Invalid");
}
}while((Line=br.readLine()) !=null )
这就是用户详细信息存储在我的文件中的方式。
=======================
=======================
First Name = Ahmed Ali
Last Name = Qazi
Address = Al-Abbass Colony pHase 2
Phone Number = +92032329301
Email Address = ahmedrider56@gmail.com
UserName = ahmedfirst67
Password = dangerd = 2hg
=======================
=======================
=======================
=======================
First Name = Ahm345
Last Name = Qa345
Address = Al-asfafs
Phone Number = +92032329301
Email Address = ahmgsdg
UserName = ahmegg
Password = dagg
【问题讨论】:
-
请添加检查文件的代码并将第二帧的可见性设置为您的问题,并提供txt文件中的一行示例。
-
@Bentaye Done 兄弟你现在可以查看
标签: java swing user-interface