написал простенькую программу для самообучения, на 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. У меня та же ошибка была
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости