猿问

编辑提交后如何选择单个单元格?

我试图为任务做一个时间记录。这些任务将显示在 JavaFX 表视图中。我使TableView可编辑,因此用户只需双击单个单元格即可更改值。所以现在我试图自定义选择后,你点击回车。例如,如果您已完成任务的名称,我想重新选择相同的单个单元格。这就是我正在努力解决的问题。


我已尝试通过选择模型获取单元格。我尝试过获取单元格 im 的表位置。我也尝试过使用焦点模型,但最终只是对焦而不是选择单元格。(显然)


@FXML

private TableView<Task> taskTableView;


@FXML

private TableColumn<Task, Task> taskTableColumn;


@FXML

private TableColumn<Task, String> durationTableColumn;


@FXML

private TableColumn<Task, String> descriptionTableColumn;



public class TaskController {


   taskTableColumn.setOnEditCommit(e -> {


// Selection Mode is Single, dont worry

   Task selectedTask = taskTableView.getSelectionModel().getSelectedItem();


// 'Edit the cell value' code, not necessary for this


    taskTableView.getSelectionModel().select(selectedTask);


   }


我希望再次选择单元格,因为我在单个选择上具有属性。但事实证明,它只是选择了一行中的最后一个单元格。


编辑:这对我来说也不起作用。


int selectedIndex = taskEntryTableView.getSelectionModel().getSelectedIndex();

taskEntryTableView.getSelectionModel().select(selectedIndex);

我突然想到了一个想法,但我不确定这是否可能。由于看起来我尝试的方法只是选择行,是否可以从列中获取其他位置?


慕妹3242003
浏览 69回答 1
1回答

白猪掌柜的

我自己得到了它,现在我得到它(^^)并不难:@FXMLprivate TableView<Task> taskTableView;@FXMLprivate TableColumn<Task, Task> taskTableColumn;@FXMLprivate TableColumn<Task, String> durationTableColumn;@FXMLprivate TableColumn<Task, String> descriptionTableColumn;public class TaskController {&nbsp; &nbsp;taskTableColumn.setOnEditCommit(e -> {// Selection Mode is Single, dont worry&nbsp; &nbsp;Task selectedTask = taskTableView.getSelectionModel().getSelectedItem();// 'Edit the cell value' code, not necessary for this// the "selectedTask" just actually just contains the row, by mentioning the column itself, it gets the x and y position.&nbsp;&nbsp; &nbsp; taskTableView.getSelectionModel().select(selectedTask, taskTableColumn);&nbsp; &nbsp;}}&nbsp;
随时随地看视频慕课网APP

相关分类

Java
我要回答