2016-11-23 80 views
0

当我尝试运行我的java fxml应用程序时,netbeans出现错误。运行Java FXML程序时出错

这里是我得到的错误:

产生的原因:在apnc7dsimulator.UIController.handleStart(UIController.java:4 2)apnc7dsimulator.UIController.handleNew(UIController显示java.lang.NullPointerException。的java:37)在apnc7dsimulator.UIController.initialize(UIController.java:31)在javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2548)... 17更

它出现的误差被始发从我的控制器。这里是我的代码:

public class UIController implements Initializable { 

@FXML 
private TextArea screen; 

@FXML 
private TextField commandLine; 

private Login login; 

@Override 
public void initialize(URL location, ResourceBundle resources) { 
    handleNew(); 
} 

public void handleNew(){ 
    screen.clear(); 
    commandLine.clear(); 
    handleStart(); 

} 

public void handleStart(){ 
    login.loginSys(screen); 

}} 

代码控制器引用是这样的:

public class Login implements PrintToScreen{ 

@Override 
public void print(String text, TextArea screen) { 
    screen.appendText(text); 
} 

@Override 
public String read(TextArea screen) { 
    Scanner scanner = new Scanner(System.in); 
    String readString = scanner.nextLine(); 
    while(readString != null){ 

     print(readString,screen); 

     if(scanner.hasNextLine()){ 
      readString = scanner.nextLine(); 
     } 
     else{ 
      readString = null; 
     } 
    } 
    return readString; 
} 

public void loginSys (TextArea screen) 
{ 
    String user = "..."; 
    String pass = "..."; 

    print("Please Enter Username:",screen); 
    user = read(screen); 

    print("Please Enter Password:",screen); 
    pass = read(screen); 

    print("Check Credentials... Please Wait.",screen); 
}} 

我敢肯定,这是一个简单的错误,我正在做或某种约定,我不能正常以下,但这让我难住了一段时间。 任何帮助将是伟大的。

回答

0

假设您已经发布了所有代码,看起来login成员变量从未初始化。默认情况下,它被初始化为null。其结果是,当这行代码运行:

login.loginSys(screen); 

由于login为空,代码扔NullPointerException

在你的代码

某处,handleStart()被调用之前,可能在UIController构造函数,你需要初始化login,是这样的:

login = new Login(); 
+0

谢谢,这似乎已经解决了,不能相信我错过了那。 –