2

How to add data from mysql in javafx using JFXTreeTableView? I have a method to add this in TableView I use this code.

For my connection I use:

static public ResultSet AllElement() {
        try {
            cnx = connecterDB();
            st = cnx.createStatement();
            rst = st.executeQuery("SELECT * FROM  element");
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return rst;
    }

In the controller declaration:

@FXML
private TableView<Object> TableElement;
@FXML
private TableColumn clmID, clmELement, clmPrix, clmQuantite;
ObservableList<Object> data;

In the controller:

public void tableElement() {
        try {
            data = FXCollections.observableArrayList();
            int r = -1;
            ResultSet rst = Tools.ConnexionJM.AllElement();
            while (rst.next()) {
                ObservableList<String> row = FXCollections.observableArrayList();
                for (int i = 1; i <= 4; i++) {
                    row.add("" + rst.getString(i));
                }
                data.add(row);
            }
            TableElement.setItems(data);
        } catch (SQLException ex) {
            Logger.getLogger(FXMLDocumentController.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

Method for columns:

public void fillTableElement() {
        clmID.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList, String>, ObservableValue<String>>() {
            public ObservableValue<String> call(TableColumn.CellDataFeatures<ObservableList, String> param) {
                return new SimpleStringProperty(param.getValue().get(0).toString());
            }
        });
        clmELement.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList, String>, ObservableValue<String>>() {
            public ObservableValue<String> call(TableColumn.CellDataFeatures<ObservableList, String> param) {
                return new SimpleStringProperty(param.getValue().get(1).toString());
            }
        });
        clmPrix.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList, String>, ObservableValue<String>>() {
            public ObservableValue<String> call(TableColumn.CellDataFeatures<ObservableList, String> param) {
                return new SimpleStringProperty(param.getValue().get(2).toString());
            }
        });
        clmQuantite.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList, String>, ObservableValue<String>>() {
            public ObservableValue<String> call(TableColumn.CellDataFeatures<ObservableList, String> param) {
                return new SimpleStringProperty(param.getValue().get(3).toString());
            }
        });

        tableElement();
    }

My question: I want with the same way work with My JFXTreeTableView because it's too easy and clear code the problem that I have is one I put

private JFXTreeTableView<Object> TableViewAP;

it says

type argument Object is not within bounds of type-variable S

where S is a type-variable; S extends RecursiveTreeObject<S> declared in class JFXTreeTableView here I can't do anything any help ?

marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
Samer
  • 126
  • 1
  • 9
  • Why not create a `List` of `Element` objects. Once you have the data into the list, then you can follow a tutorial using Google. `List data = new ArrayList();` In your loop: `data.add(new Element(rst.getString(0), rst.getString(1), rst.getString(2), rst.getString(3)));` https://examples.javacodegeeks.com/desktop-java/javafx/javafx-treetableview-example/ – SedJ601 May 16 '18 at 01:12

0 Answers0