Hi, habe das Problem das mir in der Table View zwar neue Zeilen angelegt werden aber nichts drin steht. Kann den Fehler nicht finden bzw. weiß nicht was noch fehlt.
Screenshot im Anhang und hier mein Sourcecode:
[Java]
/**
*
*/
package de.****.datenbankhandler;
import java.net.URL;
import java.sql.SQLException;
import java.util.ResourceBundle;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.ChoiceBox;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
public class newGuiContr implements Initializable,GuiInterface {
@FXML Button deleteButton;
@FXML ChoiceBox<String> tableMenu;
@FXML TableView<Felder> contentTable;
private TableColumn[] columns;
private final String table = "buch";
private ObservableList<Felder> data;
private final DatenConnector con = new DatenConnector();
ChangeListener<Number> tableMenuListener = new ChangeListener<Number>() {
@Override
public void changed(
ObservableValue<? extends Number> paramObservableValue,
Number paramT1, Number selected) {
try {
con.setTable(tableMenu.getItems().get(selected.intValue()));
createTableView();
con.show();
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
private void createTableView() {
columns = new TableColumn[con.getCols()];
data = FXCollections.observableArrayList();
}
@Override
public void initialize(URL location, ResourceBundle resources) {
try
{tableMenu.getItems().add("-- Tabellen --");
con.start(this);
for(String aktTabl : con.getTabellen()) {
tableMenu.getItems().add(aktTabl);
}
tableMenu.getSelectionModel().selectFirst();
tableMenu.getSelectionModel().selectedIndexProperty().addListener(tableMenuListener);
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@FXML protected void handleListSelect(ActionEvent event) {
System.out.println("handleListSelect");
}
@FXML protected void handleDeleteButton(ActionEvent event) {
System.out.println("handleDeleteButton");
}
@Override
public void start(String titel) throws SQLException {
}
@Override
public void add(Datensatz datensatz) {
for(int i=0; i< datensatz.getAnzahlFelder(); i++) {
columns = new TableColumn<String,Felder>(datensatz.getSpaltenNamen());
columns.setCellValueFactory(new PropertyValueFactory<String,Felder>(con.getViewNames()));
}
contentTable.getColumns().addAll(columns);
for(Zeilen aktZeile : datensatz.getZeilen()) {
data.addAll(aktZeile.getFelder());
}
contentTable.setItems(data);
}
@Override
public void refresh() {
// TODO Auto-generated method stub
}
}
[/Java]
Screenshot im Anhang und hier mein Sourcecode:
[Java]
/**
*
*/
package de.****.datenbankhandler;
import java.net.URL;
import java.sql.SQLException;
import java.util.ResourceBundle;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.ChoiceBox;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
public class newGuiContr implements Initializable,GuiInterface {
@FXML Button deleteButton;
@FXML ChoiceBox<String> tableMenu;
@FXML TableView<Felder> contentTable;
private TableColumn[] columns;
private final String table = "buch";
private ObservableList<Felder> data;
private final DatenConnector con = new DatenConnector();
ChangeListener<Number> tableMenuListener = new ChangeListener<Number>() {
@Override
public void changed(
ObservableValue<? extends Number> paramObservableValue,
Number paramT1, Number selected) {
try {
con.setTable(tableMenu.getItems().get(selected.intValue()));
createTableView();
con.show();
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
private void createTableView() {
columns = new TableColumn[con.getCols()];
data = FXCollections.observableArrayList();
}
@Override
public void initialize(URL location, ResourceBundle resources) {
try
{tableMenu.getItems().add("-- Tabellen --");
con.start(this);
for(String aktTabl : con.getTabellen()) {
tableMenu.getItems().add(aktTabl);
}
tableMenu.getSelectionModel().selectFirst();
tableMenu.getSelectionModel().selectedIndexProperty().addListener(tableMenuListener);
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@FXML protected void handleListSelect(ActionEvent event) {
System.out.println("handleListSelect");
}
@FXML protected void handleDeleteButton(ActionEvent event) {
System.out.println("handleDeleteButton");
}
@Override
public void start(String titel) throws SQLException {
}
@Override
public void add(Datensatz datensatz) {
for(int i=0; i< datensatz.getAnzahlFelder(); i++) {
columns = new TableColumn<String,Felder>(datensatz.getSpaltenNamen());
columns.setCellValueFactory(new PropertyValueFactory<String,Felder>(con.getViewNames()));
}
contentTable.getColumns().addAll(columns);
for(Zeilen aktZeile : datensatz.getZeilen()) {
data.addAll(aktZeile.getFelder());
}
contentTable.setItems(data);
}
@Override
public void refresh() {
// TODO Auto-generated method stub
}
}
[/Java]