Hi,
Ich befalle eine Tabelle aus einer Sql Oracle Abfrage.
Kann mir jemand zeigen wie ich jetzt die Ergebnisse Filtern kann?
Ich habe schon alle möglichen Seiten und Beispiele angesehen und Herumprobieren aber ich komme einfach nicht zurecht.
Ich will im Textfeld zu schreiben beginnen und die Tabelle soll entsprechend aktualisiert werden.
Danke im voraus
Ich befalle eine Tabelle aus einer Sql Oracle Abfrage.
Kann mir jemand zeigen wie ich jetzt die Ergebnisse Filtern kann?
Ich habe schon alle möglichen Seiten und Beispiele angesehen und Herumprobieren aber ich komme einfach nicht zurecht.
Ich will im Textfeld zu schreiben beginnen und die Tabelle soll entsprechend aktualisiert werden.
Danke im voraus
Java:
package FX;
import java.sql.Connection;
import java.sql.ResultSet;
import javafx.application.Application;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.collections.transformation.FilteredList;
import javafx.collections.transformation.SortedList;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.ContextMenu;
import javafx.scene.control.CustomMenuItem;
import javafx.scene.control.Label;
import javafx.scene.control.MenuItem;
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.StackPane;
import javafx.stage.Stage;
import javafx.util.Callback;
import static org.openxmlformats.schemas.drawingml.x2006.main.STPercentage.Factory.newValue;
public class TestJavaFXWindow extends Application {
//TABLE VIEW AND DATA
private ObservableList<ObservableList> data;
private TableView tableview;
private TextField filterField;
private TableColumn<selectResult, String> FID;
private TableColumn<selectResult, String> NAME;
@Override
public void start(final Stage primaryStage) {
Button btn = new Button();
btn.setText("Open a New Window");
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
//TableView
filterField = new TextField();
tableview = new TableView();
buildData();
// Label secondLabel = new Label("Hello");
StackPane secondaryLayout = new StackPane();
secondaryLayout.getChildren().add(tableview);
// secondaryLayout.getChildren().add(secondLabel);
secondaryLayout.getChildren().add(filterField);
Scene secondScene = new Scene(secondaryLayout, 1024, 768);
Stage secondStage = new Stage();
secondStage.setTitle("Second Stage");
secondStage.setScene(secondScene);
//Set position of second window, related to primary window.
secondStage.setX(primaryStage.getX() + 250);
secondStage.setY(primaryStage.getY() + 100);
secondStage.show();
}
});
StackPane root = new StackPane();
root.getChildren().add(btn);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("java-buddy.blogspot.com");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
//CONNECTION DATABASE
public void buildData() {
Connection c;
data = FXCollections.observableArrayList();
try {
c = Stromobjekte._DB_Connection.getConnection();
//SQL FOR SELECTING ALL OF CUSTOMER
String SQL = "SELECT FID, NUM from liste WHERE ID in (605088550,605088781,605088643,605004445,400021214,400021218)";
//ResultSet
ResultSet rs = c.createStatement().executeQuery(SQL);
TableColumn col;
/**
* ********************************
* TABLE COLUMN ADDED DYNAMICALLY * ********************************
*/
for (int i = 0; i < rs.getMetaData().getColumnCount(); i++) {
//We are using non property style for making dynamic table
final int j = i;
col = new TableColumn(rs.getMetaData().getColumnName(i + 1));
col.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList, String>, ObservableValue<String>>() {
public ObservableValue<String> call(TableColumn.CellDataFeatures<ObservableList, String> param) {
return new SimpleStringProperty(param.getValue().get(j).toString());
}
});
tableview.getColumns().addAll(col);
System.out.println("Column [" + i + "] ");
}
/**
* ******************************
* Data added to ObservableList * ******************************
*/
while (rs.next()) {
//Iterate Row
ObservableList<String> row = FXCollections.observableArrayList();
for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
//Iterate Column
// row.add(rs.getString(i));
Object o = rs.getObject(i);
row.add(o == null ? "" : o.toString()); // wenn ein NULL Value gefunden wird, wird dieser durch "" ersetzt
}
System.out.println("Row added " + row);
//System.out.println("Row [fid] " + row.get(3));
data.add(row);
}
//FINALLY ADDED TO TableView
tableview.setItems(data);
TextField textField = new TextField();
} catch (Exception e) {
e.printStackTrace();
System.out.println("Error on Building Data");
}
}
}