2016-11-23 3 views
0

Я получаю сообщение об ошибке в netbeans при попытке запустить приложение java fxml.Ошибка при запуске программы Java FXML

Здесь ошибка я получаю:

Вызванный: java.lang.NullPointerException на apnc7dsimulator.UIController.handleStart (UIController.java:4 2) в apnc7dsimulator.UIController.handleNew (UIController. 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

Предполагая, что вы разместили весь свой код, похоже, что переменная-член никогда не инициализируется. По умолчанию он инициализируется null. Результатом является то, что, когда эта строка кода работает:

login.loginSys(screen); 

С login имеет нулевое значение, код бросает NullPointerException.

Где-то в коде перед handleStart() называется, возможно, в UIController конструктору, вам необходимо инициализировать login, что-то вроде:

login = new Login(); 
+0

Спасибо, что, похоже, закрепилась это, не могу поверить, что я пропустил что. –

Смежные вопросы