JavaFX ContextMenu加速器从错误的选项卡启动

伊泰

我有TabPane两个选项卡,每个选项卡TableView都有一个上下文菜单。这两个上下文菜单具有重复的加速器,但是我希望只有当前选择的选项卡才能响应。但是Tab,即使未选择最后添加的事件,似乎也会发生该事件。以下是完整的示例代码:

package sample;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.input.KeyCombination;
import javafx.stage.Stage;

public class Main extends Application {

@Override
public void start(Stage primaryStage) throws Exception{
    Tab t1 = new Tab("Tab 1");
    TableView<Void> tv1 = new TableView<>();
    t1.setContent(tv1);
    MenuItem mi1 = new MenuItem("Action 1");
    mi1.setAccelerator(KeyCombination.valueOf("F3"));
    mi1.setOnAction(event->System.out.println("Action 1!"));
    ContextMenu ctx1 = new ContextMenu(mi1);
    tv1.setContextMenu(ctx1);

    Tab t2 = new Tab("Tab 2");
    TableView<Void> tv2 = new TableView<>();
    t2.setContent(tv2);
    MenuItem mi2 = new MenuItem("Action 2");
    mi2.setAccelerator(KeyCombination.valueOf("F3"));
    mi2.setOnAction(event->System.out.println("Action 2!"));
    ContextMenu ctx2 = new ContextMenu(mi2);
    tv2.setContextMenu(ctx2);

    TabPane tabPane = new TabPane(t1, t2);
    tabPane.setTabClosingPolicy(TabPane.TabClosingPolicy.UNAVAILABLE);
    primaryStage.setScene(new Scene(tabPane));
    primaryStage.show();
}


public static void main(String[] args) {
    launch(args);
}
}

我希望“行动1”!选择选项卡1和“动作2!”时打印 选择选项卡2时打印,但在现实中“行动2”!无论选择哪个标签,都会打印。如何解决此问题,以便根据当前可见的选项卡(TableView)执行正确的操作?

li

我猜您遇到过https://bugs.openjdk.java.net/browse/JDK-8088068(有关替代方法,请参见此处)。JavaFX并没有真正为将相同的加速器安装在多个MenuItem中做准备。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

识别JavaFX选项卡

来自分类Dev

JavaFX,在选项卡控制器之间传递参数

来自分类Dev

Javafx + FXML +加速器-平台独立吗?

来自分类Dev

更改JavaFx选项卡的默认外观

来自分类Dev

JavaFX-选项卡中的FXML

来自分类Dev

更改JavaFx选项卡的默认外观

来自分类Dev

JavaFX Scene Builder定制选项卡

来自分类Dev

JavaFX 禁用选项卡导航

来自分类Dev

JavaFX 8-选项卡和选项卡,每个选项卡具有单独的FXML和控制器

来自分类Dev

JavaFX TabPane-每个选项卡一个控制器

来自分类Dev

JavaFX选项卡何时应由垃圾收集器收集?

来自分类Dev

在另一个控制器中关闭选项卡 - JavaFX

来自分类Dev

JavaFX-在菜单中显示加速器修改器

来自分类Dev

通过可编辑单元格的JavaFX选项卡

来自分类Dev

JavaFx-SceneBuilder中的选项卡顺序

来自分类Dev

在tabpane javafx中创建垂直选项卡

来自分类Dev

如何使用FXML在JavaFX中动态创建选项卡?

来自分类Dev

JavaFX 8 TextArea松散地关注选项卡

来自分类Dev

Javafx TabPane具有多行选项卡

来自分类Dev

在JavaFX上动态添加和填充选项卡

来自分类Dev

JavaFX选项卡窗格未显示

来自分类Dev

获取附加到javafx选项卡的对象

来自分类Dev

对 TabPanes 选项卡使用 JavaFX PopOver 以查看其内容

来自分类Dev

将按钮添加到选项卡和选项卡区域JavaFX

来自分类Dev

javafx的先前选项卡会影响最新的选项卡

来自分类Dev

JavaFX选项卡式窗格,每个选项卡上都有表格视图?

来自分类Dev

如何将多个选项卡关闭事件处理程序添加到 JavaFX 选项卡?

来自分类Dev

Javafx ListView ContextMenu

来自分类Dev

JavaFX-TabPane / Tab如何添加填充选项卡大小的内容?

Related 相关文章

热门标签

归档