Affichage des Éléments d'une Base de données dans un JavaFX TableView

Ok, donc, je suis nouveau à cela et j'ai été à la recherche de deux semaines à essayer d'obtenir un resultset SQL pour imprimer sur une TableView faite par JavaFX Scene Builder. Je peux imprimer mon jeu de résultats en utilisant le Système..println et les données sont correctes, mais quand j'essaie de le mettre dans une Liste, mon tableview affiche une colonne avec des 0 et l'autre colonne vide. Je suis en train d'imprimer la Liste (println), mais j'obtiens le pointeur d'objet(?) et pas les données, donc je ne peux pas voir si je suis de passage à partir du jeu de résultats de la Liste de manière incorrecte.

Toute aide serait appréciée ... je veux comprendre le concept, pas juste avoir une réponse.

Voici mon code de contrôleur:

public class TesterUIController implements Initializable {
@FXML
private TableView<dataClass> Table;
@FXML
private Button TestButton;
@FXML
private TableColumn<dataClass, Integer> colKey;
@FXML
private TableColumn<dataClass, String> colSalesNo;
public static void main (String[] args) {
System.out.println("Main has run");
}
/**
*
* @param fxmlFileLocation
* @param resources
*/
@Override
public void initialize(URL fxmlFileLocation, ResourceBundle resources) {
TestButton.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("Button Pressed");
colKey.setCellValueFactory(new PropertyValueFactory<dataClass, Integer>("Key"));
colSalesNo.setCellValueFactory(new PropertyValueFactory<dataClass, String>("SalesNo"));
Table.getItems().setAll(gobbledyGook());
}
} );
}
/*
* dataClass is a (sub)class representing the data for TableView "Table"
*/
public class dataClass {
private IntegerProperty Key;
public void setKey (int value) {KeyProperty().set(value);}
public int getKey() {
return KeyProperty().get();
}
public IntegerProperty KeyProperty() {
if (Key == null) Key = new SimpleIntegerProperty(this, "Key");
return Key;
}
private StringProperty SalesNo;
public void setSalesNo(String value) {
SalesNoProperty().set(value);
}
public String getSalesNo() {
return SalesNoProperty().get();
}
public StringProperty SalesNoProperty() {
if (SalesNo == null) SalesNo = new SimpleStringProperty(this, "SalesNo");
return SalesNo;
}
}
private List<dataClass> gobbledyGook() { //ObservableList<dataClass> gobbledyGook() { //ResultSet getData() {
Connection conn;
String dbDriver;
Statement st;
ResultSet rs;//= null;
List ll = new LinkedList();
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
dbDriver = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};"
+ "DBQ=Inventario.mdb;";
conn = DriverManager.getConnection(dbDriver, "", "");
st = conn.createStatement();
String getSalesNumber = "SELECT * FROM SalesNumber " //TOP 1 * FROM ...
+ "ORDER BY SalesNumber.Key DESC";//LIMIT 1";
rs = st.executeQuery(getSalesNumber);
while (rs.next()) {
int Key = rs.getInt(1);
double saleNo = rs.getDouble(2);
NumberFormat formatter = new DecimalFormat("###########");
String SalesNo = formatter.format(saleNo);
System.out.println(Key + ", " + SalesNo); //key + ", " + saleNo);
dataClass roww = new dataClass();
ll.add(roww);
}
}
catch (ClassNotFoundException | SQLException ex) {
Logger.getLogger(TesterUIController.class.getName()).log(Level.SEVERE, null, ex);
}
return ll;
}
}

OriginalL'auteur John | 2013-04-26