Ich versuche ein Suchfenster mit PreSelection zu bauen und benötige dafür eine TableVies. Dafür habe ich mir ein paar Beispiele angesehen, aber ich bekommen es nicht zusammen. Könnte jemand mal daraufschauen ?
Code Suchfenster
Objekt zum Daten holen:
Das habe ich in der Klasse TRFR, die wollte ich für Transformationen von Daten verwenden.
Code Suchfenster
Java:
package application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Modality;
import javafx.stage.Stage;
public class SBOX {
static String output;
public static String Open_S_Window(String str_sql, String str_colname, String str_colwidth) {
Stage window = new Stage();
//
window.initModality(Modality.APPLICATION_MODAL);
window.setTitle("Suche Mitglied");
window.setWidth(600);
window.setHeight(600);
Label label = new Label();
TextField inputfield = new TextField();
TableView<?> TV_PreSelection = new TableView<Object>();
TRFR trfr = new TRFR();
ObservableList<ObservableList> TF_Def;
label.setText("Suchtext :");
/**********************************
* TABLE COLUMN ADDED *
**********************************/
TableColumn<TRFR, Integer> IDColumn = new TableColumn<>("ID");
IDColumn.setMinWidth(0);
IDColumn.setCellValueFactory( new PropertyValueFactory<>("ID"));
TableColumn<TRFR, String> VNAMEColumn = new TableColumn<>("Vorname");
VNAMEColumn.setMinWidth(20);
VNAMEColumn.setCellValueFactory( new PropertyValueFactory<>("VNAME"));
TableColumn<TRFR, String> NNAMEColumn = new TableColumn<>("Nachname");
VNAMEColumn.setMinWidth(20);
VNAMEColumn.setCellValueFactory( new PropertyValueFactory<>("NNAME"));
str_sql = "SELCET ID, VNAME, NNAME FROM MEMBERS";
InitTabView(str_sql);
TV_PreSelection.setItems(trfr.BuildTVData(str_sql));
TV_PreSelection.getColumns().addAll(IDColumn, VNAMEColumn, NNAMEColumn);
//
HBox eingabefeld = new HBox(20);
eingabefeld.setAlignment(Pos.TOP_LEFT);
eingabefeld.getChildren().addAll(label, inputfield);
/*HBox suchfeld = new HBox(50);
eingabefeld.setAlignment(Pos.CENTER);
eingabefeld.getChildren().addAll(TV_PreSelection);*/
VBox layout = new VBox(20);
layout.getChildren().addAll(eingabefeld,TV_PreSelection);
layout.setAlignment(Pos.CENTER);
// Display window and wait for it to be closed
Scene scene = new Scene(layout);
window.setScene(scene);
window.showAndWait();
return output;
}
public static void InitTabView (String str_sql) {
}
}
Objekt zum Daten holen:
Das habe ich in der Klasse TRFR, die wollte ich für Transformationen von Daten verwenden.
Java:
public ObservableList<?> BuildTVData(String StrSql) {
ObservableList<String> row =FXCollections.observableArrayList();
ObservableList<?> tf_def = FXCollections.observableArrayList();
try{
/**********************************
* Resultset erstellen *
**********************************/
DATA data = new DATA();
ResultSet rs = data.getDataRecSet(StrSql);
/********************************
* Data added to ObservableList *
********************************/
while(rs.next()){
//Iterate Row
for(int i=1 ; i<=rs.getMetaData().getColumnCount(); i++){
//Iterate Column
row.add(rs.getString(i));
}
System.out.println("Row [1] added "+ row );
}
tf_def.add(row);
}catch(Exception e){
e.printStackTrace();
System.out.println("Error on Building Data");
}
return tf_def;
}
Zuletzt bearbeitet von einem Moderator: