JavaFX HMTLEditor 对“返回”键没有反应

2024-03-16

我试图用 JavaFX 做一些实验HTMLEditor成分。我使用了以下代码(摘录):

    fxPanel=new JFXPanel();
    Platform.runLater(new Runnable() {
        @Override
        public void run() {
            Group group = new Group();
            scene = new Scene(group);               
            fxPanel.setScene(scene);
            view = VBoxBuilder.create().build();

            group.getChildren().add(view);


            edit = HTMLEditorBuilder.create().build();
           // toolPane = TabPaneBuilder.create().minHeight(60d).build();
            //toolPane.getTabs().add(new Tab("Allgemein"));

            view.getChildren().add(edit);

        }
    });

    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            jPanel1.add(fxPanel);
        }
    });

到目前为止,它工作正常,但有一个重要的例外 - 我不能使用 BR 的返回键 - 它似乎只是被忽略。按这个键完全没有反应。据我所知,任何其他键都可以按预期工作。


I noticed that CTRL-M works where Enter doesn't. So I just worked around this by putting a KeyListener on the JFXPanel, changing the KeyChar from 10 to 13 and reposting the event to the System Event Queue. This may stop working as intended later on if the HTMLEditor starts responding to both ENTER and CTRL-M though.

fxPanel.addKeyListener(new KeyListener() {

    public void keyTyped(KeyEvent e) {
        if (e.getKeyChar() == 10) {
            e.setKeyChar((char) 13);
            Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(e);
        }
    }

    public void keyPressed(KeyEvent e) {}

    public void keyReleased(KeyEvent e) {}
});

现在有人有更好的主意吗?

Edit:我发现另一种获得所需效果的方法是安装自定义KeyEventDispatcher在当前的键盘焦点管理器上,如下所示:

KeyboardFocusManager kfm = DefaultKeyboardFocusManager.getCurrentKeyboardFocusManager();
kfm.addKeyEventDispatcher(new KeyEventDispatcher() {
    @Override
    public boolean dispatchKeyEvent(KeyEvent e) {
        if (DefaultKeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner() == jfxPanel) {
            if (e.getID() == KeyEvent.KEY_TYPED && e.getKeyChar() == 10) {
                e.setKeyChar((char) 13);
            }
        }
        return false;
    }
});

This has the advantage of changing the original KeyEvent rather than posting a new one afterwards, so that if HTMLEditor were to start responding to Enter events we wouldn't be doubling up.

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

JavaFX HMTLEditor 对“返回”键没有反应 的相关文章

随机推荐

  • 使用 Java 布局管理器的目的是什么?

    似乎每当我尝试创建一个程序时 我总是会使用setLayout null 在 Java 中使用命令 因为我喜欢绝对定位我要放入 Swing 组件上的任何内容 从我读到的内容来看 每个人都在说使用布局管理器来简化编码过程 但它是如何简化的呢 平
  • 从Android手机内存中读取文本文件

    我只想在手机内存中创建一个文本文件 并且必须读取其内容才能显示 现在我创建了一个文本文件 但它不存在于路径 data data package name file name txt 中并且它没有在模拟器上显示内容 我的代码是 public
  • 完整日历 - 拖放 - 自定义

    我正在使用 React 调度程序 FullCalendar 我喜欢保留拖放功能来将事件从一种资源更改为另一种资源 但是有没有办法禁止水平拖动来改变时间呢 同样现在 拖放的工作方式就像事件将从一个资源粘到另一个资源一样 并且没有平滑的拖动操作
  • 如何使用 jQuery UI 调整 datatables.js 列的大小

    我在 stackoverflow 中找到了调整表列大小的解决方案 jQuery UI 使用表格和 colspan 调整大小 https stackoverflow com questions 18812432 jquery ui resiz
  • 图实现C++

    我想知道如何用 C 快速编写图的实现 我需要数据结构易于操作和使用图算法 例如 BFS DFS Kruskal Dijkstra 我需要这个实现来参加算法奥林匹克竞赛 因此编写数据结构越容易越好 你能建议这样的DS 主要结构或类以及其中的内
  • 找不到满足 torch>=1.0.0 要求的版本?

    找不到满足要求的版本 torch gt 1 0 0 找不到 torch gt 1 0 0 的匹配发行版 来自 stanfordnlp 如果您的 Python 版本太新 也可能会发生这种情况 目前使用 Pytorch不支持3 7 9以上版本
  • InvalidDataAccessApiUsageException:执行更新/删除查询 Spring XML 到 Java 配置

    我正在尝试将 spring xml 配置转换为 java 配置 通过 XML 配置可以完美地实现这一点 但是 如果我使用 java 配置初始值设定项 它会引发以下异常 当它尝试运行 JQL 时会发生这种情况 但应用程序正常启动 所有 JPA
  • CocoaPods 错误:RPC 失败; curl 18 传输已关闭,剩余未完成的读取数据

    当我尝试使用 CocoaPods 导入 Realm 时 如下所示 pod install verbose no repo update 然后发生错误 error RPC failed curl 18 transfer closed with
  • 引用c++中的引用

    我正在研究 C 中的参考概念 并且我对 C 完整参考中的这个陈述有点困惑 您不能引用其他引用 那么在这种情况下发生了什么 int var 10 int ref var int r ref ref r ref cout lt lt var l
  • 返回两个圆之间的 x,y 交点的 JavaScript 函数?

    我得到了两个圆的 x y 中心位置及其半径 但我需要使用 JavaScript 找到它们的交点 用红色标记 我认为就数学而言最好的解释已经找到here http paulbourke net geometry circlesphere 两个
  • LEFT OUTER JOIN SUM 双倍问题

    表 购物 shop id shop name shop time 1 Brian 40 2 Brian 31 3 Tom 20 4 Brian 30 表 香蕉 banana id banana amount banana person 1
  • 在数组第三维上应用函数

    我有一个大数组 这是一个可复制的示例 cube lt array c 1 10 5 15 5 5 1 18 c 4 4 3 cube 1 1 2 3 4 1 1 5 9 7 2 2 6 10 8 3 3 7 5 9 4 4 8 6 10 2
  • 添加条目到task_struct并初始化为默认值

    我想添加一个条目到进程控制块结构 task struct 让我们说一种标记某些进程的方法 我想将除 一些特殊进程 之外的所有进程的该字段初始化为 0 稍后通过调用sched setscheduler 我将为 特殊进程 设置此标志 有谁知道如
  • 使用 RequireJS(和 Jasmine/Sinon)时如何在另一个视图渲染方法中存根 Backbone View 实例化

    我正在尝试使用 Jasmine 和 Sion 编写单元测试 但在使用 RequireJs 加载模块时 我很难找到与以下内容等效的内容 sinon stub window MyItemView 使用 RequireJs 时 我无法以这种方式存
  • Google Maps Android API v2,标记标题/片段显示错误

    我使用 Google Maps Android API v2 与 Android 来显示当前位置和附近的标记 使用 Google Places API 接收附近地点的位置和标题 问题是标题 片段中的非英文名称显示失败 例如 希伯来语名字 附
  • 让 ipython 在我按回车键时始终执行命令?

    迁移到 ipython 后 我注意到有时 return 键会导致换行而不是执行命令 例如 如果我的光标之前 in print 这会导致 print 我怎样才能让它运行print 在这种情况和其他情况下 当您处于多行模式时会发生这种情况 例如
  • Google 图表嵌入 API 无法正常工作

    我正在使用 Embed API 从 ServiceAccount 在我的网站上包含 GA 图表 该网站是一个使用 AngularJS 的单页应用程序 我为每种图表类型和控制器创建了多个指令 将其命名GAController 在他们之间共享
  • Pyspark 将结构数组转换为字符串

    我在 Pyspark 中有以下数据框 name subject score Tom math 90 Tom physics 70 Amy math 95 I used collect list and struct函数来自pyspark s
  • C++ 错误:转换为非标量类型 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我似乎在以
  • JavaFX HMTLEditor 对“返回”键没有反应

    我试图用 JavaFX 做一些实验HTMLEditor成分 我使用了以下代码 摘录 fxPanel new JFXPanel Platform runLater new Runnable Override public void run G