javafx ошибка в проекте

140
27 марта 2018, 01:07

написал простенькую программу для самообучения, на 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
Answer 1

Попробуй FXMLLoader.load(getClass().getResourse(/sample/sample.fxml)); Если ошибка в строке с fxmlloader. У меня та же ошибка была

READ ALSO
Радиальное закрашивание background Android Studio

Радиальное закрашивание background Android Studio

Только учусь разрабатывать под Android, захотел сделать смену цвета фона при клике на кнопку посреди экранаИдея такова: 1) Я кликаю на кнопку...

150
Двигающиеся кубики в Андроид

Двигающиеся кубики в Андроид

Нужно реализовать, чтоб в основном потоке можно было передвигать один элемент класса Draw, а в другом потоке как-бы летали по экрану еще несколько...

148
Не срабатывает onclick на прозрачный блок

Не срабатывает onclick на прозрачный блок

На браузерах Opera, Chrome не срабатывает onclick на прозрачный блок (за ним скриншот видео)Работает на Explorer, Firefox

151
Java XML свободное передвижение по XML

Java XML свободное передвижение по XML

Как можно использую один объект, передвигаться по xml документу Например с кодом:

138