右键单击JavaFX TableView上的Row

时间:2014-09-09 08:43:25

标签: java javafx javafx-8

我有一个表视图,我已经添加了一个上下文菜单。当我第一次正确时,它突出显示行并显示上下文菜单。但是,当我再次右键单击其他行时,它会显示菜单,但不会突出显示新行并清除旧的选定行。 如何清除旧的选定行并突出显示新行?

我使用setRowFactorymethod

添加了上下文菜单
 mytblView.setRowFactory(new Callback<TableView<Rowdata>, TableRow<Rowdata>>() {
            @Override
            public TableRow<Rowdata> call(TableView<Rowdata> tableView) {
                final TableRow<Rowdata> row = new TableRow<>();
                final ContextMenu contextMenu = new ContextMenu();
                final MenuItem mnuItemAnalyze = new MenuItem("Analyze");
                mnuItemAnalyze.setOnAction(new EventHandler<ActionEvent>() {
                    @Override
                    public void handle(ActionEvent event) {
                        //logic for menu item
                    }
                });
                contextMenu.getItems().add(mnuItemAnalyze);
                // Set context menu on row, but use a binding to make it only show for non-empty rows:  
                row.contextMenuProperty().bind(Bindings.when(row.emptyProperty()).then((ContextMenu) null).otherwise(contextMenu));
                return row;
            }
        });
    }

0 个答案:

没有答案