• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Hibernate JavaFX Scenebuilder NullPointerException

VPS Starter Arubacloud
0 głosów
239 wizyt
pytanie zadane 1 stycznia 2019 w Java przez Rybamen Początkujący (420 p.)

Witam przy projekcie dotyczącym Hibernate wyskakuje mi błąd

 

Aplikacja prezentuje się tak:

przycisk Customers powinien przejść do nowego okna gdzie jest tabela a w niej dane, załadowane z bazy danych.

Po naciśnięciu wyskakuje ten błąd, natomiast inne przyciski działają (przenoszą do nowego okna,w których nic jeszcze nie ma).

Struktura plików wygląda tak:

 

A kod z klasy gdzie następuje wczytanie danych do tabeli tak: 

package project;

import java.io.IOException;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.scene.Node;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
import Connect.with.DB.Customer; 
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.control.TableView;
import javafx.scene.control.TableColumn;
import javafx.scene.control.cell.PropertyValueFactory;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.TypedQuery;


public class CustomersController implements Initializable {

    @FXML
    private TableColumn<Customer, Long> col_id;
    @FXML
    private TableColumn<Customer, String> col_FirstName;
    @FXML
    private TableColumn<Customer, String> col_LastName;
    @FXML
    private TableColumn<Customer, String> col_Localization;
    @FXML
    private TableColumn<Customer, String> col_PhoneNumber;
    @FXML
    private TableColumn<Customer, String> col_Street;
    @FXML
    private TableColumn<Customer, String> col_ZipCode;
    @FXML
    private TableView<Customer> tbView;
    @FXML
    private ObservableList<Customer> data;
    
 
    @FXML
    public void loadTable(ActionEvent event) throws IOException {
        EntityManagerFactory EntityManagerFactory = Persistence
                .createEntityManagerFactory("myDataBase");
        EntityManager entityManager = EntityManagerFactory
                .createEntityManager();
        TypedQuery<Customer> query;
        query = entityManager.createQuery(
                "select * from customers", Customer.class);
        data = FXCollections.<Customer> observableArrayList(query
                .getResultList());
        tbView.setItems(data);
        entityManager.clear();
        EntityManagerFactory.close();
    }
    
    @FXML
    public void goBack(ActionEvent event) throws IOException {

       Parent tableCustomers = FXMLLoader.load(getClass().getResource("Main.fxml"));
       Scene tableCustomersScene = new Scene(tableCustomers);
       Stage app_stage = (Stage) ((Node) event.getSource()).getScene().getWindow();
       app_stage.setScene(tableCustomersScene);
       app_stage.show();
    }
       
    @Override
    public void initialize(URL arg0, ResourceBundle arg1) {
        col_id.setCellValueFactory(new PropertyValueFactory<>("id"));
        col_FirstName.setCellValueFactory(new PropertyValueFactory<>("FirstName"));
        col_LastName.setCellValueFactory(new PropertyValueFactory<>("LastName"));
        col_Localization.setCellValueFactory(new PropertyValueFactory<>("Localization"));
        col_PhoneNumber.setCellValueFactory(new PropertyValueFactory<>("PhoneNumber"));
        col_Street.setCellValueFactory(new PropertyValueFactory<>("Street"));
        col_ZipCode.setCellValueFactory(new PropertyValueFactory<>("ZipCode"));
               
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
}

Jestem początkującym w programowaniu, dlatego proszę o wyrozumiałość i ewentualne podpowiedzi.

komentarz 1 stycznia 2019 przez mbabane Szeryf (79,280 p.)
Wklej cały stack wyjątku (ale jako tekst nie jako screen) oraz wklej kod klasy FXMLDocumentController bo tam jest jakiś null najprawdopodobniej.
komentarz 1 stycznia 2019 przez Rybamen Początkujący (420 p.)
edycja 1 stycznia 2019 przez Rybamen

Tutaj cały błąd: 

ant -f C:\\Users\\twork\\Documents\\NetBeansProjects\\Project -Dnb.internal.action.name=run.single -Djavac.includes=project/Project.java -Drun.class=project.Project run-single
init:
Deleting: C:\Users\twork\Documents\NetBeansProjects\Project\build\built-jar.properties
deps-jar:
Updating property file: C:\Users\twork\Documents\NetBeansProjects\Project\build\built-jar.properties
Compiling 1 source file to C:\Users\twork\Documents\NetBeansProjects\Project\build\classes
Note: Hibernate JPA 2 Static-Metamodel Generator 5.4.0.Final
warning: The following options were not recognized by any processor: '[eclipselink.canonicalmodel.use_static_factory]'
compile-single:
run-single:
sty 01, 2019 8:08:51 PM javafx.fxml.FXMLLoader$ValueElement processValue
WARNING: Loading FXML document with JavaFX API of version 10.0.1 by JavaFX runtime of version 8.0.181
sty 01, 2019 8:08:53 PM javafx.fxml.FXMLLoader$ValueElement processValue
WARNING: Loading FXML document with JavaFX API of version 10.0.1 by JavaFX runtime of version 8.0.181
Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1774)
    at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1657)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
    at javafx.event.Event.fireEvent(Event.java:198)
    at javafx.scene.Node.fireEvent(Node.java:8411)
    at javafx.scene.control.Button.fire(Button.java:185)
    at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:182)
    at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:96)
    at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:89)
    at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
    at javafx.event.Event.fireEvent(Event.java:198)
    at javafx.scene.Scene$MouseHandler.process(Scene.java:3757)
    at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485)
    at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762)
    at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:394)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$353(GlassViewEventHandler.java:432)
    at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:431)
    at com.sun.glass.ui.View.handleMouseEvent(View.java:555)
    at com.sun.glass.ui.View.notifyMouse(View.java:937)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication.java:177)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
    at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
    at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1769)
    ... 48 more
Caused by: javafx.fxml.LoadException: 
file:/C:/Users/twork/Documents/NetBeansProjects/Project/dist/Project.jar!/project/Customers.fxml

    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 project.FXMLDocumentController.gotoCustomers(FXMLDocumentController.java:21)
    ... 58 more
Caused by: java.lang.NullPointerException
    at project.CustomersController.initialize(CustomersController.java:76)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2548)
    ... 66 more</code>


 

package project;

import java.io.IOException;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.scene.Node;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;


public class FXMLDocumentController implements Initializable {
    
   @FXML
   public void gotoCustomers(ActionEvent event) throws IOException
   {
       Parent tableCustomers = FXMLLoader.load(getClass().getResource("Customers.fxml"));
       Scene tableCustomersScene = new Scene(tableCustomers);
       Stage app_stage = (Stage) ((Node) event.getSource()).getScene().getWindow();
       app_stage.setScene(tableCustomersScene);
       app_stage.show();
   }
   
    @FXML
   public void gotoCars(ActionEvent event) throws IOException
   {
       Parent tableCustomers = FXMLLoader.load(getClass().getResource("Cars.fxml"));
       Scene tableCustomersScene = new Scene(tableCustomers);
       Stage app_stage = (Stage) ((Node) event.getSource()).getScene().getWindow();
       app_stage.setScene(tableCustomersScene);
       app_stage.show();
   }
   
   @FXML
   public void gotoAutoDealers(ActionEvent event) throws IOException
   {
       Parent tableCustomers = FXMLLoader.load(getClass().getResource("AutoDealers.fxml"));
       Scene tableCustomersScene = new Scene(tableCustomers);
       Stage app_stage = (Stage) ((Node) event.getSource()).getScene().getWindow();
       app_stage.setScene(tableCustomersScene);
       app_stage.show();
   }
    
    @Override
    public void initialize(URL url, ResourceBundle rb) {
    
    }    
    
}

będzie tak?

komentarz 1 stycznia 2019 przez mbabane Szeryf (79,280 p.)
Wstaw to w blok <code>

1 odpowiedź

+2 głosów
odpowiedź 1 stycznia 2019 przez mbabane Szeryf (79,280 p.)

Tutaj:

Parent tableCustomers = FXMLLoader.load(getClass().getResource("Customers.fxml"));

musi być znak / rozpoczynając ścieżkę do pliku fxml:

Parent tableCustomers = FXMLLoader.load(getClass().getResource("/Customers.fxml"));
komentarz 1 stycznia 2019 przez Rybamen Początkujący (420 p.)
Hmm, pliki znajdują się w tym samym pliku i pakiecie, wcześniej działało przejście na nową scenę, schody zaczęły się gdy dodałem tabelę wraz z ładowaniem danych z bazy danych.

Podobne pytania

0 głosów
1 odpowiedź 482 wizyt
pytanie zadane 15 listopada 2018 w Java przez Moras Obywatel (1,620 p.)
0 głosów
1 odpowiedź 429 wizyt
pytanie zadane 18 czerwca 2020 w Java przez Akiro Bywalec (2,910 p.)
–1 głos
2 odpowiedzi 1,461 wizyt
pytanie zadane 16 grudnia 2016 w Java przez Swierzak Użytkownik (690 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...