Java TableView赢得';t返回sqlite数据
无法找出数据未显示的原因 MainLayout嵌入在TableLayout中 MainLayout.fxml 主类 操作员控制器 我试着到处找,但我不明白,连接到数据库说“成功”。 列仍为空。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
我不认为这是命名问题,因为我检查了很多次,但我可能是错的。正如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();
}