[英]Pass a string from one class to another in java
我正在嘗試將String從一類傳遞到另一類,但是我得到的結果是'null'。 我想將String用戶名從LoginFrame傳遞給HomeworkFrame;
作業框架:
public void loadSubjects (){
String item;
try{
System.out.println(username);
Scanner f = new Scanner (new FileReader (username + " " + "Subjects" + ".txt"));
while(f.hasNext()){
item = f.nextLine();
chSubjects.add(item);
}
f.close();
}catch(Exception e){
JOptionPane.showMessageDialog(null, "Subjects cannot be loaded!", "Error", JOptionPane.ERROR_MESSAGE);
}
}
LoginFrame:
public void loginUser(){
r = new Registration();
h = new HomeworkFrame();
l = new Login();
l.username = txtUser.getText();
l.password = txtPass.getText();
try{
String line;
boolean passwordFound = false ;
BufferedReader f = new BufferedReader(new FileReader(l.username + ".txt"));
while((line = f.readLine()) != null){
if(line.equals(l.password)){
passwordFound = true;
}
}
if(passwordFound){
h.username = l.username;
dispose();
m.setSize(700,600);
m.setLocation(100,100);
m.setVisible(true);
}else{
JOptionPane.showMessageDialog(null, "Wrong information!", "Error", JOptionPane.ERROR_MESSAGE);
}
f.close();
}catch(Exception e){
JOptionPane.showMessageDialog(null, "Wrong information!", "Error", JOptionPane.ERROR_MESSAGE);
}
}
顯然,由於用戶名為空(我使用println方法檢查了它),因此出現錯誤“無法加載主題”。
如果出現此類問題,您必須從您注意到“用戶名”字段為null的位置跟蹤變量/字段。 下一步應該是:
這種情況應該可以幫助您找到大多數“空”錯誤。
首先嘗試檢查一下,您得到哪種類型的異常。
可能是文件不存在或列表為null或....
是格式問題:將\\
放在pathString中的空格之前: "\\ "
您必須將其寫為"\\ Subjects.txt"
,兩者之間不能有“ +”。
如果是System.out.println(username); 顯示null意味着
1.username變量未初始化並保留。
2.value未正確分配。
3.它可能是一個靜態變量,您正在更改它的值。
請檢查所有這些條件,並提供從中調用loadSubjects()的那部分代碼,而不是該方法的主體,因為您已經禁止了它。
還有所有初始化,分配,修改用戶名的代碼部分。
回答您的問題! :)
需要指定或傳遞該值,否則肯定會給出Null,因為它將找不到任何要執行的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.