Java TableView赢得';t返回sqlite数据

Java TableView赢得';t返回sqlite数据,java,sql,sqlite,javafx,Java,Sql,Sqlite,Javafx,无法找出数据未显示的原因 MainLayout嵌入在TableLayout中 MainLayout.fxml 主类 操作员控制器 我试着到处找,但我不明白,连接到数据库说“成功”。 列仍为空。 我不认为这是命名问题,因为我检查了很多次,但我可能是错的。正如James_D指出的,您的控制器类从未被使用过。您需要在FXML中指定控制器: fx:controller="application.OperatoriController.java" 或者在从Main.java加载FXML时指定控制器: t

无法找出数据未显示的原因

MainLayout嵌入在TableLayout中

MainLayout.fxml

主类

操作员控制器

我试着到处找,但我不明白,连接到数据库说“成功”。 列仍为空。
我不认为这是命名问题,因为我检查了很多次,但我可能是错的。

正如James_D指出的,您的控制器类从未被使用过。您需要在FXML中指定控制器:

fx:controller="application.OperatoriController.java"
或者在从Main.java加载FXML时指定控制器:

try {
    CheckConnection();

    FXMLLoader loader = new FXMLLoader();
    loader.setController(new OperatoriController());

    Parent root = loader.load(getClass().getResource("TabLayout.fxml"));
    Scene scene = new Scene(root,600,400);
    scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
    primaryStage.setTitle("Gestione Personale");
    primaryStage.setScene(scene);
    primaryStage.show();
    primaryStage.setMaximized(true);
} catch(Exception e) {
    e.printStackTrace();
}

您尚未在FXML中指定控制器类。
package application;

import javafx.beans.property.SimpleStringProperty;

public class Operatori {


        private  SimpleStringProperty nome = new SimpleStringProperty();
        private  SimpleStringProperty reparto = new SimpleStringProperty();
        private  SimpleStringProperty attivita = new SimpleStringProperty();
        private  SimpleStringProperty giorno = new SimpleStringProperty();
        private  SimpleStringProperty finegiorno = new SimpleStringProperty();

        public String getNome() {
            return nome.get();
        }

        public void setNome(String nomeIn) {
            nome.set(nomeIn);
        }

        public String getReparto() {
            return reparto.get();
        }

        public void setReparto(String repartoIn) {
            reparto.set(repartoIn);
        }

        public String getAttivita() {
            return attivita.get();
        }

        public void setAttivita(String attivitaIn) {
            attivita.set(attivitaIn);
        }

        public String getGiorno() {
            return giorno.get();
        }

        public void setGiorno(String giornoIn) {
            giorno.set(giornoIn);
        }

        public String getFinegiorno() {
            return finegiorno.get();
        }

        public void setFineGiorno(String finegiornoIn) {
            finegiorno.set(finegiornoIn);
        }

    }
package application;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage;
import javafx.scene.Parent;
import javafx.scene.Scene;



public class Main extends Application {

    Connection conn;
    PreparedStatement pst = null;
    ResultSet rs = null;


    @Override
    public void start(Stage primaryStage) {
        try {
            CheckConnection();
            Parent root = FXMLLoader.load(getClass().getResource("TabLayout.fxml"));
            Scene scene = new Scene(root,600,400);
            scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
            primaryStage.setTitle("Gestione Personale");
            primaryStage.setScene(scene);
            primaryStage.show();
            primaryStage.setMaximized(true);
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

    public void CheckConnection(){
        conn = SqlConnection.DbConnector();
        if(conn == null){
            System.out.println("Connection not successful");
            System.exit(1);
        }
        else{
            System.out.println("Connection  successful");
        }
    }

    public static void main(String[] args) {
        launch(args);
    }
}
package application;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;

import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;

public class OperatoriController {

    @FXML
    private TableView<Operatori> tableMain;

    @FXML
    private TableColumn<Operatori,String> nomeCol;

    @FXML
    private TableColumn<Operatori,String> repartoCol;

    @FXML
    private TableColumn<Operatori,String> attivitaCol;

    @FXML
    private TableColumn<Operatori,String> giornoCol;
    @FXML
    private TableColumn<Operatori,String> finegiornoCol;

    //START | SQLITE
    private static Connection con;
    private static Statement stat;
    private PreparedStatement prep;
    //END | SQLITE

    private ObservableList <Operatori> listaMain; 

    @FXML
    public void initialize() {
        listaMain = FXCollections.observableArrayList();

        nomeCol.setCellValueFactory(
                new PropertyValueFactory<Operatori, String>("nome")
        );
        repartoCol.setCellValueFactory(
                new PropertyValueFactory<Operatori, String>("reparto")
        );
        attivitaCol.setCellValueFactory(
                new PropertyValueFactory<Operatori, String>("attivita")
        );
        giornoCol.setCellValueFactory(
                new PropertyValueFactory<Operatori, String>("giorno")
        );
        finegiornoCol.setCellValueFactory(
                new PropertyValueFactory<Operatori, String>("finegiorno")
        );


        try {            
            con = SqlConnection.DbConnector();
            stat = con.createStatement();
            ResultSet rs = con.createStatement().executeQuery("SELECT NOME,Reparto,Attivita,Day,FineDay FROM Visualizza");
            System.out.println(rs);
            while (rs.next()) {
                Operatori nt = new Operatori();
                nt.setNome(rs.getString("NOME"));
                nt.setReparto(rs.getString("Reparto"));
                nt.setAttivita(rs.getString("Attivita"));
                nt.setGiorno(rs.getString("Day"));
                nt.setFineGiorno(rs.getString("FineDay"));
                listaMain.add(nt);
            }            
            tableMain.setItems(listaMain);


        } catch (SQLException ex) {
            Logger.getLogger(OperatoriController.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

}
package application;
import java.sql.*;

public class SqlConnection 
{
    public static Connection DbConnector()
    {
    Connection conn=null;
        try{
            Class.forName("org.sqlite.JDBC");
            conn = DriverManager.getConnection("jdbc:sqlite:C:/Users/Utente/Desktop/DB/prova.db");

            return conn;

            }catch(ClassNotFoundException | SQLException e)
             {
              System.out.println(e);

             } 
        return null;
    }

}
fx:controller="application.OperatoriController.java"
try {
    CheckConnection();

    FXMLLoader loader = new FXMLLoader();
    loader.setController(new OperatoriController());

    Parent root = loader.load(getClass().getResource("TabLayout.fxml"));
    Scene scene = new Scene(root,600,400);
    scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
    primaryStage.setTitle("Gestione Personale");
    primaryStage.setScene(scene);
    primaryStage.show();
    primaryStage.setMaximized(true);
} catch(Exception e) {
    e.printStackTrace();
}