【发布时间】:2021-04-16 15:56:59
【问题描述】:
我正在使用 javafx 构建一个时间表,我正在使用 5 个 TableView,每个 TableView 用于一周中的一天(周一至周五)。 我想用一个按钮从 TableView 中删除一个项目。 从一个特定的 TableView 中删除一个项目对我来说没有问题。但我希望 Button 适用于所有 TableView。
所以我的问题是:有没有一种方法可以获取选定的 TableView? 不仅仅是从一个 TableView 中选择的项目。
@FXML public void fachLoeschen() {
TableView<Fach> tableview = new TableView<Fach>();
//tableview = the TableView in which the selected Item is
int selectedIdx = tableview.getSelectionModel().getSelectedIndex();
if (selectedIdx==-1)return;
Fach fach = tableview.getSelectionModel().getSelectedItem();
var alert = new Alert(Alert.AlertType.CONFIRMATION, "Are you sure you want to delete: "+fach.getFach()+ " ?", ButtonType.YES, ButtonType.NO);
if (alert.showAndWait().orElse(ButtonType.NO) == ButtonType.YES) tableview.getItems().remove(selectedIdx);
}
这是方法的代码。单词“fach”(我是德国人)代表时间表中的课程。
【问题讨论】:
-
我不确定这是你需要的还是你正在寻找的,但你有没有试过看看哪个有焦点?
-
不,没有“选择”节点的一般概念(focused 可能接近,但不一定)。应用程序代码必须根据域范围来设计/实现它 - 这里是 f.i. current == Monday - 并始终与 ui 状态保持同步。
标签: java uitableview javafx tableview