我想将 mainGui.java 的输入调用 mainmenu.java ,但它会一直返回NullPointException。
以下是 mainGui.java
的代码String input;
public String user() {
return input = logintext.getText();
}
private void submitbtnActionPerformed(java.awt.event.ActionEvent evt) {
String input = logintext.getText();
String input2 = loginpassword.getText();
try {
lectFunc = (lectFunc)lectRecord.get(input);
if(lectFunc == null){
JOptionPane.showMessageDialog(null,"Wrong username or password!");
} else if (lectFunc.getUser().equals(input) && lectFunc.getPass().equals(input2)){ dispose();
new mainmenu().setVisible(true);
}
else {
JOptionPane.showMessageDialog(null,"Error");
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
和 mainmenu.java
的代码public class mainmenu extends javax.swing.JFrame {
lectFunc lectFunc;
mainGui mainGui;
public mainmenu() {
final String user = mainGui.user();
lectFunc.setUser(user);
System.out.println(lectFunc.getUser());
new mainGui().setVisible(false);
initComponents();
}
有没有办法克服这个问题?
更新:NPE
java.lang.NullPointerException
at oodj.mainmenu.<init>(mainmenu.java:9)
at oodj.mainGui.submitbtnActionPerformed(mainGui.java:158)
at oodj.mainGui.access$000(mainGui.java:8)
at oodj.mainGui$1.actionPerformed(mainGui.java:52)
第9行:final String user = mainGui.user();
答案 0 :(得分:0)
我认为对initComponents的调用应该在开头。主菜单可能尚未创建。
答案 1 :(得分:0)
您不能将新创建的mainGui对象分配给您的类属性:
public class mainmenu extends javax.swing.JFrame {
lectFunc lectFunc;
mainGui mainGui;
public mainmenu() {
...
mainGui = new mainGui();
mainGui.setVisible(false);
}
}