написал простенькую программу для самообучения, на javafx. Возникает ошибка, прошу объяснить, что делаю не так и показать как исправить.
Cсылка
программирую на idea, но экспортировал также для eclipse
package sample;
import javafx.fxml.FXMLLoader;
import javafx.scene.layout.Pane;
import java.io.IOException;
public class MainActivity {
static FXMLLoader fxmlLoader = new FXMLLoader();
{
try {
Pane p = fxmlLoader.load(getClass().getResource("sample.fxml").openStream());
} catch (IOException e) {
e.printStackTrace();
}
}
static Controller controller = (Controller) fxmlLoader.getController();
public static void mainActivity() {
controller.setTextLabel(controller.getTexField()); //Вот тут ошибка (строка 21)
}
}
===
package sample;
import javafx.event.ActionEvent;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import java.net.URL;
import java.util.ResourceBundle;
public class Controller implements Initializable {
public TextField textField;
public Label textLabel;
public void okAction(ActionEvent actionEvent) {
MainActivity.mainActivity(); // тут ошибка (строка 17)
}
public void setTextLabel(String str) {
textLabel.setText(str);
}
public String getTexField() {
return textLabel.getText();
}
@Override
public void initialize(URL location, ResourceBundle resources) {
}
}
====
Ошибка:
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:76)
at jdk.internal.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at javafx.base/com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:275)
at javafx.fxml/com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:83)
at javafx.fxml/javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1782)
... 47 more
Caused by: java.lang.NullPointerException
at sample.MainActivity.mainActivity(MainActivity.java:21)
at sample.Controller.okAction(Controller.java:17)
... 58 more
Попробуй FXMLLoader.load(getClass().getResourse(/sample/sample.fxml)); Если ошибка в строке с fxmlloader. У меня та же ошибка была
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Только учусь разрабатывать под Android, захотел сделать смену цвета фона при клике на кнопку посреди экранаИдея такова: 1) Я кликаю на кнопку...
Нужно реализовать, чтоб в основном потоке можно было передвигать один элемент класса Draw, а в другом потоке как-бы летали по экрану еще несколько...
На браузерах Opera, Chrome не срабатывает onclick на прозрачный блок (за ним скриншот видео)Работает на Explorer, Firefox
Как можно использую один объект, передвигаться по xml документу Например с кодом: