[英]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.