- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 JavaFX 世界的新手,我似乎无法弄清楚如何在 HTMLEditor 组件中监听 text-modify 事件。
我需要这个,因为我正在将这个小部件连接到一个需要更新的模型。
具有 KeyEvent.KEY_TYPED
事件类型的 addEventFilter
API 似乎没有正常工作。当它的处理程序被调用时,getHTMLText()
还没有用最新的字符更新(如果有人不理解这一段,我将提供一个循序渐进的例子)。
TextField 有一个 textProperty()
可以附加一个监听器。
现在 HTMLEditor 怎么样?
此外,最好只在文本修改事件上调用监听器(而不是在 CTRL+A 上调用,例如)。你知道……就像 SWT Text 的 addModifyListener()
。
最佳答案
在我的一个项目应用程序中使用 JavaFX HTMLEditor
时,我也遇到了类似的情况。我最终添加了一个按钮
,单击该按钮将解析 HTML 文本,并执行进一步的任务。使用 AnchorPane
,我可以在 HTMLEditor 上无缝添加 button
,它看起来就像它的一部分。
无论如何,这里有一个小例子,说明如何在没有任何额外按钮的情况下实现你想要的:
package application;
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.web.HTMLEditor;
import javafx.stage.Stage;
public class Main extends Application
{
@Override
public void start(Stage primaryStage)
{
try
{
final HTMLEditor editor = new HTMLEditor();
Scene scene = new Scene(editor);
primaryStage.setScene(scene);
editor.setOnKeyReleased(new EventHandler<KeyEvent>()
{
@Override
public void handle(KeyEvent event)
{
if (isValidEvent(event))
{
System.out.println(editor.getHtmlText());
}
}
private boolean isValidEvent(KeyEvent event)
{
return !isSelectAllEvent(event)
&& ((isPasteEvent(event)) || isCharacterKeyReleased(event));
}
private boolean isSelectAllEvent(KeyEvent event)
{
return event.isShortcutDown() && event.getCode() == KeyCode.A;
}
private boolean isPasteEvent(KeyEvent event)
{
return event.isShortcutDown() && event.getCode() == KeyCode.V;
}
private boolean isCharacterKeyReleased(KeyEvent event)
{
// Make custom changes here..
switch (event.getCode())
{
case ALT:
case COMMAND:
case CONTROL:
case SHIFT:
return false;
default:
return true;
}
}
});
primaryStage.show();
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static void main(String[] args)
{
launch(args);
}
}
更新:经过更多思考,我找到了一种方法,即使在这些按钮点击时也能完成事件处理。方法如下:
EventHandler<MouseEvent> onMouseExitedHandler = new EventHandler<MouseEvent>()
{
@Override
public void handle(MouseEvent event)
{
System.out.println(editor.getHtmlText());
}
};
for (Node node : editor.lookupAll("ToolBar"))
{
node.setOnMouseExited(onMouseExitedHandler);
}
如果您看到 HTMLEditor
,它有两个 ToolBars
。
我在代码中所做的是查找
这两个工具栏,并设置一个onMouseExited
事件处理程序。类比是,如果用户进入并在 HTML 文本上进行一些更改并退出工具栏,将触发一个事件,然后可以处理该事件。
您甚至可以根据需要在这两个工具栏上设置不同类型的事件处理程序,但在我看来,这些 onMouseExited
事件处理程序在与 一起使用时提供了非常广泛的覆盖范围onKeyReleased
事件处理程序。但是,基于 onMouseExited
处理程序的覆盖率并不准确。
关于JavaFX HTMLEditor 文本更改监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22128153/
我有一个简单的面板,里面有一个 HTML 编辑器。 我只想将光标聚焦在组件的文本区域内。 我尝试将其集中在渲染后,以将组件设置为默认焦点,但我无法使其工作。 这是我的代码,我该怎么办?是否有可能将此文
我正在调整 JavaFX 中的 HTMLEditor,我的目标是在 HTMLEditor 中插入本地镜像。互联网上的图像没有问题并且工作正常,但是当我尝试使用绝对路径插入本地镜像时,它只显示著名的“X
我尝试在 http://jsfiddle.net/WEEU3/ 中使用 HTMLEditor 但是当我选择编号列表或项目符号列表进行输入时,我按 Enter 键盘。好像 我觉得像 1. first 2
我正在尝试使用格式化输入进行聊天,我的问题是默认情况下您无法将链接放入JavaFX HTMLEditor中,因此我添加了一个按钮,用超链接替换所选文本。我的问题是 1:编辑器中的超链接是可单击的,如果
我是 JavaFX 世界的新手,我似乎无法弄清楚如何在 HTMLEditor 组件中监听 text-modify 事件。 我需要这个,因为我正在将这个小部件连接到一个需要更新的模型。 具有 KeyEv
我正在使用 JavaFX 集成的 HTMLEditor。它具有的所有功能都很好,但我还需要具有在 HTML 文本中插入图像的功能。你知道我可以使用的一些来源吗?或者可以在 JavaFX 中使用并且具有
我正在使用 ExtJS,并且我的表单中有一个 htmleditor。我想向该元素添加一个自定义按钮(例如在所有其他按钮之后,如对齐、字体粗细等)。这个按钮基本上应该在 htmlfield 中插入一个标
我需要选择 htmleditor 字段文本并将其复制到剪贴板,模拟 ctrl+a 和 ctrl+c(由按钮触发)。 我做了一些尝试,包括Ext.util.KeyMap,但没有成功。 有什么建议可以实现
我正在尝试创建一个带有数据库的应用程序,其中包含我在应用程序中供个人使用的脚本示例。 这是一个非常简单的应用程序:西部区域有一个带有项目名称的网格,中部区域有一个带有编辑器的水平盒子和一个带有我的笔记
我在页面上使用 AjaxControlToolkit.HTMLEditor,但根据某些变量,编辑器的 Visible 控件可以在代码隐藏中设置为 false。我在 Javascript 中得到了对 H
如果我放置此代码 new HTMLEditor(); 除了在我的 Application.start(Stage stage) 实现之外的任何地方,我都会收到以下错误: SEVERE: javafx.
我想使用 css 规则调整 JavaFx 中 HTMLEditor 的行高,但找不到规则的名称。我尝试了 -fx-line-height 和其他一些,但没有一个起作用。是否有可能,或者 HTMLEdi
我没有使用 AjaxControlToolkit 的 HtmlEditor,因为它没有直接插入图像的按钮,这就是我搜索另一个编辑器并最终找到 Winthusiasm 的原因。编辑。 一切似乎都很好,但
大家好,我关注了UIKIT我的 html 编辑器示例 我的问题是虽然它工作正常但设计不是......它与他们的文档中的内容不同我遵循了所有内容但是 htmleditor 的导航栏设计仍然很丑这是我的代
我有一个用 javafx 开发的简单应用程序。问题是我想删除这两个工具栏,但不知道该怎么做。在代码中,我将底部工具栏的可见性设置为 false。如果您需要回答,请寻求帮助:顶部工具栏的id是.top-
是否可以在实际文本上方隐藏 HTMLEditor 的控件? (对齐、复制和粘贴图标、样式等) 谢谢你的帮助 最佳答案 public static void hideHTMLEditorToolbars
我在 extjs 4.2 中创建的表单中有一个 htmleditor 字段。我将它隐藏在后渲染监听器中的工具栏: listeners: { afterrender: function(edit
我尝试设置 javafx HTMLEditor 以获取容器上的所有可用大小。接下来是源代码。 public class HtmlEditorTest extends Application { @Ov
你好,我正在尝试制作一个搜索系统,它的工作原理如下: 您按 ctrl + f 出现文本对话框 您输入的文本对话框中的文本将在 HTML 编辑器中突出显示 所以我在第三步中遇到问题,我找不到任何有关突出
我正在寻找一种使用 JavaFX HTMLEditor 的 setHtmlText 添加本地图像的方法。我可以添加远程图像没有问题: HTMLEditor editor = new HTMLEdito
我是一名优秀的程序员,十分优秀!