Проблема
Вы добавляете txtFirstName
дважды, но вы можете добавить элемент в пользовательский интерфейс только один раз.
Вы добавляете его с помощью
this.add(txtFirstName, 1, 1);
и
this.getChildren().add(txtFirstName);
Вы можете исправить это, удалив
this.getChildren().add(txtFirstName);
Как это найти (прочитайте это, это поможет вам:))
Посмотрите на ваше исключение:
Исключение в методе инициализации приложения java .lang.reflect.InvocationTargetException
Это говорит о том, что проблема возникает при выполнении кода init
.
InvokedTargetException
означает, что метод, вызванный с использованием отражения (как в случае с init, поскольку JavaFX использует отражение для этого), выдал исключение. Это может быть любое исключение. Раздел Caused by
в трассировке стека показывает реальное исключение. Давайте посмотрим на это:
Причина: java .lang.IllegalArgumentException: Дети: добавлены дубликаты детей: parent = Grid hgap = 0.0, vgap = 0.0, выравнивание = TOP_LEFT в javafx.scene. Родительский $ 2.onProposedChange (Parent. java: 454) на com.sun.javafx.collections.VetoableListDecorator.add (VetoableListDecorator. java: 206) на веб-сайте. CreateAccountPane. (CreateAccountPane. java: 60) *
Сообщение об исключении (Children: duplicate children added: parent = Grid hgap=0.0, vgap=0.0, alignment=TOP_LEFT
) говорит вам, что проблема в том, что вы уже добавили этот элемент.
на веб-сайте website.CreateAccountPane. (CreateAccountPane. java: 60)
сообщает, что это произошло в строке 60 из CreateAccountPane
(CreateAccountPane.java:60
).
Далее, мы посмотрим на эту строку ближе:
this.getChildren().add(txtFirstName);
Он фактически добавляет элемент на панель сетки.
Итак, кажется, что этот элемент уже является частью панели сетки. Итак, давайте посмотрим, что вы добавили к нему ранее:
this.add(txtFirstName, 1, 1);
Вы добавили один и тот же элемент два раза. В этом проблема.
Заключение
Как видите, чтение и интерпретация трассировки стека является очень и очень важной частью программирования. Если вы включите go, вы увидите все больше и больше таких трассировок стека.
Не бойтесь этих огромных красных текстов. Разделите их на части и попытайтесь найти проблему.
Это может быть трудоемким и трудным делом, особенно в начале , но со временем вам станет лучше !
Поиск понимание и исправление ошибок - очень важная часть программирования (возможно, самая важная часть).
Эта часть будет намного проще, если вы сможете
- читать и интерпретировать исключения
и
- отладка. Если вы не знаете, что такое отладка, посмотрите, изучите и попробуйте. Это почти наверняка поможет вам.