在控制台中显示选定的TableView行值

时间:2018-10-26 09:10:17

标签: java javafx tableview

我正在研究JavaFx应用程序。这就是我从数据库填充表格视图的方式。我正在尝试让tableview选择行值并将其显示在控制台中。

我该怎么做?

  private void populateTable() {

        try {
            //con = handler.getConnection();
            String req = "SELECT Username,Email FROM User Where Active='0' ";
            ResultSet rst = con.createStatement().executeQuery(req);

            ObservableList<ObservableList> data = FXCollections.observableArrayList();
            tableRequests.getColumns().clear();
            int cols = rst.getMetaData().getColumnCount();

            for (int i = 0; i < cols; i++) {
                final int j = i;
                TableColumn col = new TableColumn(rst.getMetaData().getColumnName(i + 1).toUpperCase());
                //TableColumn colBtn = new TableColumn("Activate");

                col.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList, String>, ObservableValue<String>>() {

                    @Override
                    public ObservableValue<String> call(TableColumn.CellDataFeatures<ObservableList, String> param) {
                        return new SimpleStringProperty(param.getValue().get(j).toString());

                    }
                });

                col.setPrefWidth(130);
                tableRequests.getColumns().addAll(col);

            }
            while (rst.next()) {
                ObservableList<String> row = FXCollections.observableArrayList();
                for (int k = 1; k <= rst.getMetaData().getColumnCount(); k++) {
                    row.add(rst.getString(k));

                }
                data.add(row);

            }
            tableRequests.setItems(data);
        } catch (SQLException ex) {
            Logger.getLogger(CoursesTableController.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

0 个答案:

没有答案