JavaFX kann ich nicht füllen tableview durch die observableList
problem habe ich mit der Füllung Tableview.
Wenn ich diesen code ausführen, mein tableview hat dieselbe Anzahl von Datensätzen wie die Observablelist aber nichts ist sichtbar.
Irgendeine Idee? Ein donť understans einige wie cellvalueProperty. Ist diese geeignet für mein Beispiel? Danke.
package SYSSEL;
import java.sql.SQLException;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.stage.Stage;
import java.sql.ResultSet;
import javafx.scene.control.*;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
public class gridOfMessages extends Stage {
private ObservableList messages;
@FXML
private Button buttonCloseGrid;
@FXML
private TableColumn C1;
@FXML
private TableColumn C2;
@FXML
private TableColumn C3;
@FXML
private Button buttonRefreshGrid;
@FXML
private TableView<gridOfMessages> gridOfMessagesList;
@FXML
private void HandlerCloseGrid(ActionEvent event) {
}
@FXML
private void handlerRefreshGrid(ActionEvent event) throws ClassNotFoundException, SQLException {
//Main Scene
ResultSet rq = PdfSorting.checkNewMsgs();
rq.first();
messages=FXCollections.observableArrayList();
while(rq.next()){
//Iterate Row;
ObservableList<String> row = FXCollections.observableArrayList();
row.add(rq.getString("ID_DOCUMENT_ESSL"));
row.add(rq.getString("DOCUMENT_PATH"));
row.add(rq.getString("BAN"));
System.out.println("Row [1] added "+row );
messages.add(row);
}
gridOfMessagesList.setItems(messages);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import javafx.geometry.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<AnchorPane id="AnchorPane" minWidth="307.0" prefHeight="506.999977929685" prefWidth="307.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2" fx:controller="SYSSEL.gridOfMessages">
<children>
<Button id="ButtonCloseGrid" fx:id="buttonCloseGrid" layoutX="0.0" layoutY="468.0" mnemonicParsing="false" onAction="#HandlerCloseGrid" prefHeight="39.0" prefWidth="147.0" text="Zavřít" />
<Button id="refreshGrid" fx:id="buttonRefreshGrid" layoutX="147.0" layoutY="468.0" mnemonicParsing="false" onAction="#handlerRefreshGrid" prefHeight="39.0" prefWidth="161.0" text="Aktualizovat" />
<TableView fx:id="gridOfMessagesList" layoutX="0.0" layoutY="0.0" prefHeight="468.0" prefWidth="307.0">
<columns>
<TableColumn maxWidth="5000.0" minWidth="10.0" prefWidth="72.0" text="Číslo datovky" fx:id="C1" />
<TableColumn maxWidth="5000.0" minWidth="10.0" prefWidth="147.0" text="Cesta" fx:id="C2" />
<TableColumn maxWidth="5000.0" minWidth="10.0" prefWidth="87.0" text="BAN" fx:id="C3" />
</columns>
</TableView>
</children>
</AnchorPane>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, müssen Sie Wert der Zelle Fabrik für jede Spalte in der Tabelle, das ist sicher. Aber man sollte poste deine fxml-Datei-code zu, ohne Sie kann ich nicht bestätigen, ist es ein Problem hier ist oder nicht.
Zelle mit dem Wert der Fabrik, sagt, von wo der Wert herkommt. Wenn Ihre Tabelle Daten Modell Typ
gridOfMessages
, dann beobachtbar Liste für Tabellen-Daten sollten vom gleichen Typ sein.Edit:
Aus deinem fxml-Datei ist offensichtlich, dass Sie müssen hinzufügen Wert der Zelle Fabrik für jede Spalte, so etwas wie in dem folgenden Beispiel ersetzen Sie einfach Vorname Eigenschaft name aus Ihrem Datenmodell bean.
Wenn Sie nicht legen Sie den Datentyp für TableView und ObservableList, Standard-Typ angenommen wird. Wie auch immer, mehr als eine Spalte in der Tabelle ist schwer zu machen, auf diese Weise.
Edit:
Dann müssen Sie eine Klasse schreiben, die wird für eine Zeile in der Tabelle. Zum Beispiel, wenn Sie wollen, um die Tabelle mit drei Spalten, müssen Sie eine bean mit drei Eigenschaften. Dann legen Sie als Typ für TableView und ObservableList, füllen Sie die Liste mit Daten, und legen Sie für die Tabelle, ähnlich wie es in deinem code schon. Sollte das in die controller-Klasse. Dies ist eine Allgemeine Beschreibung, denn ich weiß nicht, was soll diese Tabelle darstellen.
Ihnen helfen können, auch mit Oracle tutorial darüber, wie Daten in der Tabelle mit fxml.