Почему я не могу выбрать в таблице? Я делаю так же, как другие - PullRequest
0 голосов
/ 02 октября 2019
 @FXML
 private void onEditChange(TableColumn.CellEditEvent<ModelTable, String> event) {
   ModelTable tbl = table.getSelectionModel().getSelectedItem();
   tbl.setName(event.getNewValue());
 }

Я хочу изменить содержимое таблицы после выбора.

1 Ответ

0 голосов
/ 13 октября 2019

Вам нужно использовать Listener, и он помещается в метод инициализации.
Когда вы щелкаете по строке в таблице, вы затем вызываете некоторый метод, который выполняет желаемое поведение. Мы разместили код, который при выборе строки таблицы переходит на новый экран. Мы называем наши экраны blablaPane, прежде чем мы перейдем к навигации, мы устанавливаем пару статических переменных, чтобы значения можно было использовать на следующем экране.

    private void toChildView() throws IOException{
    stage = (Stage)parentTVPane.getScene().getWindow();// pane you are ON
    childTVPane = FXMLLoader.load(getClass().getResource("childtableview.fxml"));// pane you are GOING TO
    Scene scene = new Scene(childTVPane);// pane you are GOING TO
    scene.getStylesheets().add(getClass().getResource("diary.css").toExternalForm());
    stage.setScene(scene);
    stage.setTitle("Diary Entries by Date Entered and Title"); 
    stage.show();
    stage.sizeToScene();
    stage.centerOnScreen();  
}

private void showTableDataDetails(ParentModel info) throws IOException{
    if (info != null) {
        info =  (ParentModel) ptable.getSelectionModel().getSelectedItem();
        strMONTH = info.getPMonth();
        strYEAR = info.getPYear();
        toChildView();
    } 
}

@Override
public void initialize(URL url, ResourceBundle rb) {

    try {
        ReadFromParent();
    } catch (SQLException ex) {
        Logger.getLogger(ParentTableViewController.class.getName()).log(Level.SEVERE, null, ex);
    }

    ptable.getSelectionModel().selectedItemProperty().addListener((ObservableValue<? extends ParentModel>
        observable,ParentModel oldValue, ParentModel newValue) -> {
        try {
            showTableDataDetails((ParentModel) newValue); // When a row of the table is Selected call
            // Proper Construction                       // showTableDataDetails method
        } catch (IOException ex) {
            Logger.getLogger(ParentTableViewController.class.getName()).log(Level.SEVERE, null, ex);
        }
    });
}  
...