JavaFX でテーブル ビューから単一の行を選択しようとしたときに問題が発生しました。
データベースからのデータをテーブルに入力する方法は次のとおりです。
public void populateCategoryTable() {
data = FXCollections.observableArrayList();
try {
db.getConnection();
String sql = "SELECT * FROM sm_category";
ResultSet rs = null;
// Call readRequest to get the result
rs = db.readRequest(sql);
while (rs.next()) {
ObservableList<String> row = FXCollections.observableArrayList();
//All the rows are added here dynamically
row.add(rs.getString("categoryID"));
data.add(row);
}
viewCategory.setItems(data);
rs.close();
} catch (SQLException ex) {
ex.printStackTrace();
System.out.println("Error SQL!!!");
System.exit(0);
}
TableColumn id = new TableColumn("ID");
id.setVisible(false);
id.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());
}
});
viewCategory.getColumns().addAll(id);
TableView.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); //Error here
TableView.TableViewSelectionModel selectionModel = viewCategory.getSelectionModel();
ObservableList selectedCells = selectionModel.getSelectedCells();
TablePosition tablePosition = (TablePosition) selectedCells.get(0);
int row = tablePosition.getRow(); // yields the row that the currently selected cell is in
}
しかし、setSelectionMode コードを挿入しようとすると、エラーが発生します。シンボルが見つからないことがわかります symbol: method setSelectionMode(int) location: class TableView
JavaSwing でテーブルを作成したとき、これを使用してテーブルのモデルを設定したことを覚えています。
ただし、javaFX でこれを行うことはできません。誰かがこれを修正するのを手伝ってくれますか?
前もって感謝します。