Я пытаюсь отладить проект очарования. Я установил точки останова в коде, но каждый раз, когда выполнение достигает точки останова, Netbeans зависает, и я вынужден принудительно закрыть его. Что бы это ни стоило, я использую Ubuntu 15.04.
[Изменить 1]
Вот изображение установленной точки останова
Я получаю исключение: Exception in thread "JavaFX Application Thread" java.lang.IndexOutOfBoundsException
, которое не указывает ни на одну строку в моем коде, поэтому я хочу выполнить отладку и выяснить, что вызывает проблему. Сразу код попадает на 106 строку, все зависает.
[Изменить 2]
Хорошо, вот большая часть кода контроллера.
public void initialize(URL url, ResourceBundle rb) {
departmentList.setPlaceholder(new Label("Oops!! EMPTY!!!"));
/*
Populate SideMenu
*/
ObservableList<Label> schools = FXCollections.observableArrayList();
ListView<Label> schoolList = new ListView<>(schools);
for (School school : schoolsList) {
schools.add(new Label(school.getName(), MaterialDesignIcon.ACCOUNT_BALANCE.graphic()));
}
/*
Add Listeners to side Menu ListView
*/
schoolList.getSelectionModel().selectedItemProperty().addListener(
(ObservableValue<? extends Label> observable, Label oldValue, Label newValue) -> {
selectedSchool = parser.findSchool(newValue.getText());
loadDepartments();
MobileApplication.getInstance().hideLayer("Side Menu");
});
/*
Add Listener to departments ListView
*/
departmentList.getSelectionModel().selectedItemProperty().addListener(
(ObservableValue<? extends Label> observable, Label oldValue, Label newValue) -> {
if (newValue == null) {//Got fired by clearing the Observable list
return;
}
System.out.println(newValue);
facDept[1] = newValue.getText();
/*
Reset before leaving; *to be removed and tried on mobile
*/
loadDepartments();
MobileApplication.getInstance().switchView(SEMESTER_VIEW);
});
borderPane.setCenter(schoolList);
center.getChildren().add(departmentList);
}
@FXML
private void showLayer(ActionEvent event) {
MobileApplication.getInstance().showLayer("Side Menu");
}
Я установил точку останова в методе showLayer(MobileApplication...), и отладка работает. Ставлю еще одну строку selectedSchool = parser.findSchool(newValue.getText());
, но тут отладка зависает. Обратите внимание, что исключение здесь не возникает.