JavaFX ContextMenu 加速器从错误的选项卡触发

2024-02-23

我有一个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 时打印,但实际上是“Action 2!”无论选择哪个选项卡都会打印。 我该如何解决这个问题,以便根据当前可见的选项卡(TableView)执行正确的操作?


我猜你已经遇到过https://bugs.openjdk.java.net/browse/JDK-8088068 https://bugs.openjdk.java.net/browse/JDK-8088068(请参阅那里的解决方法)。 JavaFX 并没有真正准备好在多个菜单项中安装相同的加速器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaFX ContextMenu 加速器从错误的选项卡触发 的相关文章

  • 有没有办法设置独立 TableView 列的样式?

    我可以使用 CSS 来设置单元格样式 但如果我只想为一列使用不同的样式 例如使用不同的文本颜色 怎么办 也许我错过了一些东西 你应该使用TableColumn setCellFactory http docs oracle com java
  • 向 Windows 任务栏缩略图添加按钮 JavaFX?

    这个问题已经闲置一年多了 我的问题仍然没有解决方案 我编辑此内容是为了澄清我的问题并引起人们对它的新关注 如果您使用 Windows 您可能知道将程序图标悬停在任务栏上时显示的小预览图像 缩略图 某些程序 例如 Spotify Git 扩展
  • 在Python中解析制表符分隔的文件

    我正在尝试在 Python 中解析一个制表符分隔的文件 其中与行开头分开的 k 个制表符的数字应该放入第 k 个数组中 除了逐行读取并执行简单解决方案将执行的所有明显处理之外 是否有内置函数可以执行此操作 或者有更好的方法 您可以使用the
  • 如何在 Java Swing 中创建右键单击上下文菜单?

    我目前正在通过实例化一个新的来创建右键单击上下文菜单JMenu右键单击并将其位置设置为鼠标的位置 有更好的方法吗 您可能正在手动调用setVisible true 在菜单上 这可能会导致菜单中出现一些令人讨厌的错误行为 The show C
  • FXML 文档拒绝导入其他 fxml 文件

    我的程序有一个主要的 FXML 文档 其中包含TabPane 对于每个选项卡 我希望它有自己的控制器和 fxml 文件 当我尝试将外部 fmxl 文件包含到主 fxml 文档中时 我的程序拒绝运行 这是我的主要 FXML 文档 这是我的 j
  • 如何使 AnchorPane 大小响应最大化的屏幕视图

    我不知道什么是灰色地带以及如何扩展我的Anchorpane到整个屏幕Image https i stack imgur com m5HqA png 不是未最大化的视图是这样的image2 https i stack imgur com 14
  • Android - 从选项卡内的活动内切换选项卡

    目前我有一个 TabHost 它实现了 3 个选项卡 每个选项卡包含一个单独的活动 我的问题是如何在位于选项卡主机内的活动之一中的选项卡之间进行切换 我到处寻找但未能找到这个问题的真正答案 经过长时间与这个问题的斗争 我已经找到了在使用基于
  • 访问 java jigsaw 模块中的资源文件[重复]

    这个问题在这里已经有答案了 我正在尝试从项目中的类访问 Eclipse 项目中的文件 我需要将该项目声明为 jigsaw 模块才能从其他项目访问它 但是通过这样做 我无法再访问项目中的 example png 等文件 这是我的项目结构 pr
  • 如何根据 JavaFX 8 中的特定祖先获取节点边界?

    我在 AnchorPane 中添加了一个图表 我想获取其绘图的范围 图表 我用青色标记 这样我就可以在它上面添加一些文本 但我应该根据它的祖先知道它的确切边界 如果我手动执行此操作 则在调整大小等时更改节点的填充大小时 我可能会失败 imp
  • 如何在 QTableView 标题中单击鼠标右键单击上下文菜单?

    下面的示例代码 很大程度上受到here http www saltycrane com blog 2007 12 pyqt 43 qtableview qabstracttablemodel 有一个右键单击上下文菜单 当用户单击表中的单元格
  • 在 JavaFX 中搜索 TableView 列表

    如何在 TableWie 中查找记录 例如通过 ID 并选择创建的行并将其放在 Java 8 JavaFX 中的屏幕中间 您可以使用以下方式搜索元素 int searchId table getItems stream filter ite
  • JavaFX MediaPlayer - 音乐在 10 秒后停止

    这是代码 就像标题所说的 音乐在10秒后停止 我在vlc或其他程序中正常播放该文件 持续了5分钟多 public void music String bip src data fjordmusic mp3 Media hit new Med
  • JavaFX 中的 -fx-background-radius 和 -fx-background-insets

    我正在使用 JavaFX 我想自定义一个按钮 我看到了几个可以设计的特征 其中我发现了两个我不认识的人 button fx padding 5 22 5 22 fx border color 121212 fx border width 2
  • 将 JavaFX FXML 对象分组在一起

    非常具有描述性和信息性的答案将从我这里获得价值 50 声望的赏金 我正在 JavaFX 中开发一个应用程序 对于视图 我使用 FXML
  • 如何在场景生成器中设置控制器?

    我想用sceneBuilder for a javaFx应用 我有一个Package它被称作testPac其中有如图 1 所示的文件夹 我有一个fxml文件及其controller在 的里面view文件夹 现在 我不知道我必须在控制器盒内使
  • 即使在轴上进行自动量程调整,我也可以保留积分刻度线吗?

    我 偷 了一些代码here http fxexperience com 2012 01 curve fitting and styling areachart 拥有一个AreaChart我在 FXML 中使用了 平滑线条 它的工作原理如下
  • 如何从 JavaFX 中的另一个控制器类访问 UI 元素?

    我有一个使用 NetBeans 8 编写的 JavaFX Java 8 应用程序 没有SceneBuilder 我的应用程序有一个主窗口 该窗口有自己的 FXML 文件 primary fxml 和自己的控制器类 FXMLPrimaryCo
  • JavaFX ReadOnlyListProperty 不是只读的?

    这段代码抛出 UnsupportedOperationException 正如我所期望的那样 因为它是只读的 ListProperty
  • HTML:如何强制链接在新选项卡而不是新窗口中打开[重复]

    这个问题在这里已经有答案了 I use target blank 在新选项卡中打开链接 但在 IE 中它会打开一个新窗口 这是完全合乎逻辑的 因为这就是 blank应该做的 我不知道如何target blank 在其他浏览器中的行为 有什么
  • 使用多个值过滤 JFX TableView

    我目前正在尝试过滤我的数据TableView using FilteredList with predicate 我有2个ComboBoxes来过滤值 我的表包含Result Each Result has a Student that S

随机推荐

  • 请推荐一个好的 OpenStreetMap 组件 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Python Scipy 用于 2D 外推样条函数?

    我想为二维矩阵编写一个外推样条函数 我现在拥有的是一维数组的外推样条函数 如下所示 scipy interpolate InterpolatedUnivariateSpline http docs scipy org doc scipy 0
  • 在 clojure 中读取文件并忽略第一行?

    使用代码来自这个答案 https stackoverflow com a 7757674 1212338 我有 defn repeat image n string println apply str repeat n string def
  • 从巨大的 txt.gz 文件中选择/复制包含字符串的行的最快方法

    所以我有以下内容sed一班轮 sed e S d e T d e D d e d e s H H g e s Q Q g e 1 i sample 1 txt gt sample 2 txt 我有很多行以以下任一开头 S T D H Q 这
  • CMake 设置发布和调试版本和标志

    我是 CMake 新手 我正在尝试编译我的项目 该项目创建了一些静态库和一些可执行文件 下面是我拥有的文件结构的示例 PROJECT 构建 Linux CMakeLists txt 主 CMakelist 文件 build linux Re
  • MongoDB - PHP - MongoCursorException“找不到游标”

    我有 2 个集合 A 380 万个文档 和 B 170 万个文档 我有一个从 shell 运行的 PHP 脚本 循环遍历 A 中的每条记录 60 的时间 它在 B 上执行 findOne 使用 id 做一些基本的数学运算 创建一个 php
  • 如何在详细视图中跳转到下一行

    我有一个 TableView 它在 didSelectRow 中加载详细视图 我对数据没有任何问题 我正在使用 coreData 并使用 NSFetchedResultsController 来填充 TableView 现在 我想在详细视图
  • 将脚注添加到 gsummary 表中的单行标签

    我正在尝试向行标签添加脚注gtsummary https www danieldsjoberg com gtsummary 表 但我不知道如何引用我想要的确切单元格 预期输出 使用默认值trial数据集 我想在 药物 B 中添加一个脚注 内
  • Json 序列化将 k__BackingField 添加到我的属性中

    这种情况最近才开始发生在未更改的代码上 它是 nuget 包中的外部库 如果我这样做 var client HttpClient var response await client PostAsJsonAsync some url some
  • 启动进程并允许调用者结束而无需等待进程完成

    我需要从 C 控制台应用程序启动一个进程 然后允许控制台应用程序完成 结束 而无需等待进程 线程完成 我该怎么做呢 您需要避免使新进程成为当前进程的子进程 ProcessStartInfo sinfo new ProcessStartInf
  • 如果页面有 session_start(),则不会加载;在里面

    我最近从多年的 WAMP 切换到 XAMPP 因为我想要 PHP 7 但我注意到一些我以前从未经历过的事情 它不会加载具有以下内容的 php 文件 session start 在他们中 我只是在 Chrome IE FF 中收到 正在等待本
  • 来自 DataProvider 的 Yii 分页变量

    我的控制器操作中需要某些分页变量 such as 1 当前页码 2 当前页偏移量 3 显示总记录数 即显示 2005 年的 31 至 40 条记录 我尝试了以下方法 dataProvider NodesTerms getNodesDataF
  • Docker 按顺序下载各层

    有没有办法让 docker 按顺序而不是并行下载图像的各层 我之所以需要这个 是因为我们的存储库对网络问题非常严格 或狡猾 我收到很多 EOF 错误 例如 time 2016 06 14T13 15 52 936846635Z level
  • Web API 中的命名空间“System.Web”中不存在类型或命名空间“Http”

    我正在尝试按照此链接创建一个 Web API 我已经完全添加了它的显示方式this https www tutorialspoint com asp net mvc asp net mvc web api htm文章 但是添加控制器后 它给
  • 根据值向网格图添加边框

    我想知道你是否能帮我解决这个问题 我有一个由 0 和 1 组成的网格 如果它是 1 我想向绘图单元格区域添加边框颜色 我使用 imshow 生成根据值着色的网格 例如 a np random randint 2 size 10 10 im
  • Yarn 迷你集群容器日志目录不包含 syslog 文件

    我已经基于 CDH 5 1 0 的 hadoop 2 3 0 设置了带有 1 个节点管理器 4 个本地目录和 4 个日志目录等的 YARN MapReduce 迷你集群 它看起来或多或少起作用 我未能实现的是从容器进行系统日志记录 我看到容
  • 为什么 wget 输出到 stderr 而不是 stdout?

    经过 30 分钟徒劳尝试捕获输出后wget 我发现该程序写入stderr而不是stdout 在网络和堆栈溢出中搜索表明这是一个众所周知的事实 知道为什么会这样吗 这是众所周知的 因为它在manual http www gnu org sof
  • PHP 组合数组

    我如何组合这两个数组 如果数组有重复项 则只有一个使用 PHP 表示 Array 0 gt 18 1 gt 20 2 gt 28 3 gt 29 Array 0 gt 1 1 gt 8 2 gt 19 3 gt 22 4 gt 25 5 g
  • 如何对不描述函数的 N 个点进行插值

    Suppose i have n points also suppose that this points have an order and not necessary this points make a function I m wo
  • JavaFX ContextMenu 加速器从错误的选项卡触发

    我有一个TabPane有两个选项卡 每个选项卡都有一个TableView它有一个上下文菜单 这两个上下文菜单有重复的加速器 但我希望只有当前选定的选项卡才会响应 但发生的只是最后添加的Tab似乎得到了该事件 即使它没有被选择 下面是完整的示