/ / javafx ¿cómo solicitar enfoque en la celda de la tabla? - javafx, tableview

javafx cómo solicitar enfoque en la celda de la tabla? - javafx, tableview

Tengo un TableView editable que valida laAportes en los manteles. Si el usuario escribe una entrada no válida, se mostrará un cuadro de alerta con el mensaje de error. sin embargo, cuando se muestra el cuadro de alerta, TableCell y TableView pierden el foco. El siguiente código describe el escenario.

tableColumn.setOnEditCommit(evt -> {
boolean inputValid = // do validation;
if(!inputValid) {
int row = tableView.getEditingCell().getRow();
Alert alert = new Alert(AlertType.ERROR);
alert.setContentText("Invalid input");
alert.initModality(Modality.WINDOW_MODAL);
alert.initOwner(tableView.getScene().getWindow());
alert.showAndWait();
tableView.requestFocus(); // get back focus
tableView.edit(row, tableColumn);
}
});

esto vuelve a concentrarse en el TableView después de mostrar el cuadro de alerta pero el TextField dentro de TableCell no tiene foco. ¿Cómo lograr esto? y por cierto, estoy usando el Editandocell TableCell en lugar de la TextFieldTableCell.

Respuestas

0 para la respuesta № 1

Tratar:

Necesitas definir una TablePosition:

Ejemplo: TablePosition pos = new TablePosition(tableView, 0, null);

Ponle el foco a esto:

tableView.getFocusModel().focus(pos);


0 para la respuesta № 2

Yo suelo:

    tableview.getFocusModel().focus(row, tableColumn);
tableview.requestFocus();

Esto funciona para mi.