В настоящее время я работаю над проектом в JavaFX с помощью SceneBuilder. Таким образом, все элементы, которые вы видите здесь, были предоставлены файлом F XML, связанным с Контроллером.
В проекте используется основанный на раунде GameL oop, который здесь некоторое время упрощается L oop ( функция «onClick») Во время различных раундов я хотел бы добавить разные оценки игроков на табло на экране.
На табло есть определенное количество текстовых элементов, поэтому я подумал, что это будет мудрая идея сохранить их в массиве (теперь ArrayList), чтобы упростить доступ, и соответственно обновить их, например, -> text1 сохраняет счет, затем text2 сохраняет счет и отображает его.
При тестировании заметил, что это решение не работает. Вместо хранения предоставленных текстов ArrayList «Throw» всегда выдает ноль при печати его на консоль
public class Controller {
public Button Game501;
private AlertBox Spieleranzahl = new AlertBox();
private BorderPane Menübar;
public Text text1;
public Text text2;
int i = 0;
ArrayList<Text> Throw = new ArrayList<Text>() {{
add(text1); add(text2); // text elements to cycle through and update
successively (only 2 here)
}};
ArrayList<Integer> score = new ArrayList<Integer>() {{
add(50); add(100); //example of added scores
}};
public void onClick() {
if (i==0) {
Throw.get(i).setText(String.valueOf(score.get(i))); // Throw.get(i) gives
nullException
i++;
} else if (i==1 ) {
Throw.get(i).setText(String.valueOf(score.get(i))); // using text2.settext... would work, but
then I cant cycle through my text
elements
i=0;
}
}
}
Вы можете представить себе нажатие кнопки, чередующейся между двумя операторами if, например, игрок поворачивается, это упрощается здесь, но вы поняли.
Есть ли способ обойти nullExcpetion или мне нужно найти совершенно другой метод циклического перемещения по разным текстовым элементам, если да, то как мне этого добиться?