Это код моего класса контроллера:TreeView Image бросает NullPointerException
public class Controller implements javafx.fxml.Initializable{
@FXML private Button btn_home ;
@FXML private Button btn1;
@FXML private VBox vbox_list;
@FXML public TreeView tree_view;
@FXML public Label lbl;
public ImageView img;
@Override
public void initialize(URL arg0, ResourceBundle arg1) {
this.img =new ImageView(new Image(getClass().getResource("/images/Ford.png").toExternalForm()));
TreeViewHelper helper = new TreeViewHelper();
ArrayList<TreeItem<String>> products = helper.getmakes(img);
tree_view.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
TreeItem<String> rootItem = new TreeItem<String>("Marques");
rootItem.getChildren().addAll(products);
tree_view.setRoot(rootItem);
tree_view.setShowRoot(false);
tree_view.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<TreeItem>() {
@Override
public void changed(ObservableValue<? extends TreeItem> arg0, TreeItem arg1, TreeItem arg2) {
// TODO Auto-generated method stub
System.out.println("new: " + arg2.getValue());
TreeItem<String> selectedItem = (TreeItem<String>) arg2;
String st = arg2.getValue().toString();
if (st.equals("Alfa Romeo"))
st = "alfa%20romeo";
else if (st.equals("Mercedes-Benz"))
st = "mercedes%20benz";
else if (st.equals("Rolls-Royce"))
st = "Rolls%20Royce";
else if (st.equals("Aston Martin"))
st = "aston%20martin";
System.out.println(st);
TreeViewHelper helper = new TreeViewHelper();
ArrayList<TreeItem<String>> products = helper.getmodels(st);
selectedItem.getChildren().addAll(products);
selectedItem.setExpanded(true);
tree_view.requestFocus();
}
});
//System.out.print(t.get_list_makes().size());
}
@FXML public void mouse_clicked()
{
}
Это код моей функции get_makes:
public ArrayList<TreeItem<String>> getmakes(ImageView m)
{
All_makes all_makes = (All_makes) new parse_object <All_makes> (All_makes.class).ParseUri("https://api.edmunds.com/api/vehicle/v2/makes?state=new&fmt=json&api_key=9t82jrgr8c3bv6vusw8j75fu");
ArrayList<TreeItem<String>> makes = new ArrayList<TreeItem<String>>();
for (int i = 0 ; i< all_makes.get_list_makes().size(); i++)
{
TreeItem<String> make = new TreeItem<String>(all_makes.get_list_makes().get(i).get_mk_name(),m);
make.setGraphic(m);
makes.add(make);
}
return makes;
}
Я не знаю, почему я получаю java.lang.NullPointerException
. Все хорошо, путь построения, путь, и когда я создаю TreeView
без картинки.
Вот консольный вывод:
at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2579)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3214)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097)
at application.Main.start(Main.java:35)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at Controller.Controller.initialize(Controller.java:56)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2548)
... 17 more
Где моя ошибка? :(
Какая линия линия 56 –
this.img = новый ImageView (новое изображение (GetClass() getResource ("/ изображения/Ford.png") toExternalForm())..); это liiiiiiiiine @James_D –
Тогда путь к изображению неправильно –