问题标签 [htmleditorkit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 保存 HTML 文档
如何在文件系统上保存 HTML 文档?javax.swing.text.html.HTMLDocument 类不会覆盖该toString()
方法并getText()
删除标签。
java - 在 HTMLEditorKit/HTMLDocument 中使用 Java Swing CSS 样式属性“类”
我的问题如下:
我正在尝试向使用 HTMLEditorKit 和 HTMLDocument 类在 Java Swing 中实现的 HTML 编辑器添加功能。这个想法是提供在 HTML 编辑器中编辑文本期间在不同样式之间切换的可能性。不同的样式定义了背景/前景颜色、字体等。
我已经设法以编程方式加载样式表文件。代码如下所示:
样式表文件如下所示:
将该样式表添加到 HTMLEditorKit 实例的 StyleSheet 后,我已经可以在使用其源编辑器将内容插入 HTML 编辑器时使用这些样式(在源编辑器中,可以直接插入 HTML 代码,例如“<span class="style1">Styled文本</span>”)。为了允许在 WYSIWYG 部分中使用样式,我在编辑器的工具栏中添加了一个 JComboBox,它显示“formats.css”中的样式名称(样式名称中的前导“.”被删除)。在 JComboBox 的 ActionListener 中,我现在尝试设置“类”属性。我的代码如下所示:
不幸的是,这似乎不起作用。至少,在更改样式后,我没有将其应用于我之后输入的文本,并且在源视图中,“类”属性不会出现在包含的 HTML 组件中。我检查了管理设置另一种字体的 HtmlEditor 类中的代码,看看我是否也可以使用与更改字体相同的技术来达到我的目的。附加到提供字体选择的 JComboBox 的相应动作侦听器如下所示:
正如我们在这里看到的,StyleConstants 类用于将属性设置为新字体。令我困惑的是 StyleConstants 类似乎没有提供设置“类”属性的方法。从它的 Javadoc 中可以看出,有很多方法可以设置对齐、字体系列、粗体等属性。可能我的方法很简单是不正确的。也许我还没有正确理解在 HTMLDocument 中使用 CSS 的概念。任何帮助,将不胜感激!
根据我对 HTML CSS 的理解,可以按如下方式使用:
<head> 部分内的 <style> 元素定义样式类。例子:
然后在 HTML 内部,这些类可以通过 HTML 元素内部的通用属性“class”来引用。例子:
<span class="style1">style1 中的文本</span>
因此,应该可以以某种方式将具有预定义样式的“类”属性作为其值插入到由 HTMLEditorKit 管理的 HTMLDocument 中的元素中。我的小 HTML 编辑器提供了在文档内当前插入符号位置激活样式的功能。所以让我们假设插入符号的位置在这样的段落内:
<p>一些没有样式的文字</p>
在结束段落标记之前的“样式”一词之后。
现在我想激活,比如说,style1。这应该会产生如下结构:
<p>一些没有样式的文本<span class="style1"> </span></p>
现在插入符号的位置应该在新的 <span> 元素内。
或者如果插入符号位于空段落的开头:
<p></p>
应用样式后,结构应如下所示:
<p class="style1"> </p>
我认为这应该没什么大不了的,但不知道如何完成这项工作。
在这之间,我尝试了另一种方法来解决我的问题,但没有成功。这是完整的示例代码(希望不要太多;-):
从ctor中可以看出。类 HTMLEditor 我首先添加了三个用户定义的样式 (style[1-3]),然后通过插入使用 style1 进行格式化的文本来检查它们是否工作。我希望在用户定义的文本格式样式之间切换应该以类似于在粗体和普通字体显示之间切换文本的方式完成。所以我的问题是:如何将用户定义的 CSS 样式应用于 HTMLDocument 中的元素?非常感谢任何提示。
java - 如何在使用 HTMLEditorKit 构建的 HTML 编辑器中提供更改文本部分背景颜色的功能
我的问题如下:
我想让我的小 HTML 编辑器的用户能够在输入的文本的不同背景颜色之间切换。为此,我首先尝试使用 CSS 样式。不同的样式定义了不同的背景颜色,并且JComboBox
用户可以在这些样式之间切换。在选择类型中的相应位置的样式后,将输入HTMLDocument
新的 HTML 类型元素
。<span class="style">
不幸的是,我无法完成这项工作。跨度元素根本没有创建(请参阅我关于这个问题的问题)。
在此期间,我查看了课程StyledEditorKit.ForegroundAction
以了解其功能。在执行时,它只是修改StyledEditorKit
正在使用的输入属性设置新的前景色。之后输入的文本以新的前景色显示。当将 HTML 代码写入文件时,文本会自动包含在<font color=".."> ... </font>
HTML 元素中。所有这些甚至适用于可能跨越多个段落的选定文本。在这种情况下,显然所有受影响段落中的受影响文本都包含在<font ...>
HTML 标记中。
我想完成在任意文本块上设置背景颜色的相同功能。但令人惊讶的是,这似乎并不那么容易:-(
我没有找到类似于
StyledEditorKit.foregroundAction
Java 7 JDK 中用于该目的的预定义操作类。创建这样一个类似乎并不复杂;ForegroundAction
这与将actionPerformed
方法更改为设置背景而不是前景属性几乎相同
。
但是如何创建有效的 HTML 代码来为包含的部分文本设置特定的背景颜色?到目前为止,我不知道哪个部分执行为具有前景属性集的文本HTMLEditorKit
创建所有元素。我认为从创建元素的现有代码中,派生一个创建
元素而不是用于为任意文本区域设置背景颜色的元素的实现应该不会太难。还是所有这些都已经可用而我只是没有注意到?任何帮助,将不胜感激!<font>
HTMLDocument
<font>
<span style="background-color:...">
<font>
在这期间,我向前迈出了重要的一步,多亏了在这里找到的一段代码,
我设法创建了有效的<span>
元素。在 span 元素中,我使用class
属性来分配预定义的样式。
这是我的代码:
到目前为止,一切都很好!我对这个解决方案的唯一问题是我无法实现从包含在<span>
元素中的文本切换回“普通”文本,即未放置在<span>
元素内的文本。这应该没什么大不了的,但不幸的是我不知道如何做到这一点。任何想法都会非常受欢迎!
java - 通过 div id 更新 html JTextPane?
我正在使用 aJTextPane
来打印聊天消息,实现:
消息是这样插入的:
每条消息(div)都有一个唯一的 ID,我想选择一个特定的 ID 并更新该 html 插入的内容。
这可能吗?
java - Java - ParserDelegator 在输入很大时抛出异常
此代码在小型 html 文件上运行良好,但是当我尝试解析已转换为字符串的 ~4MB HTML 文件时,它会引发 IOException,我不知道为什么?就在那个 try 循环中,我花了一段时间才找到它,因为控制台没有打印错误。
基本上,这段代码旨在获取 HTML 文件并去除标签,同时保留行距。我在 SO 上找到了这段代码并借用了它,替代解决方案也很好,但在 JSoup 和许多其他解决方案中,这是唯一能实现我想要的(无论如何在小文件上)。当文件太大时,这段代码有什么理由会抛出 IOException 吗?解决方法?
万分感谢!
编辑:这是堆栈
java - Java Swing 的 HTMLEditorKit 移除了 SPAN 元素的嵌套
我正在使用 和 实现一个简单的 HTML
编辑JTextPane
器。代码如下所示:HTMLDocument
HTMLEditorKit
我注意到,当我加载一个包含嵌套 SPAN 元素的 HTML 文件时,嵌套会被静默删除。这是一个示例 HTML 文件:
加载该文件并在工具栏中选择“预览”操作后,我会看到一个显示 HTML 源代码的弹出窗口,如下所示:
可以看出,外部 SPAN 元素被无声地分成两个 SPAN 元素,内部 SPAN 元素放置在两者之间。在我看来,这种行为显示了实现 HTML 编辑器的 Java Swing 组件与据我所知允许嵌套 SPAN 元素的 HTML 4.x 标准之间的不兼容之一。我现在的问题是:是否有一种(希望不会太复杂)方法来解决或克服该限制,即让 HTML 编辑器保留它在阅读 HTML 文本时遇到的嵌套 SPAN 元素?
非常感谢提前,apatwork。
java - javax.swing.text.rtf.RTFEditorKit / RTF是8位格式
我需要一个简单的 HTML2RTF 转换器,我尝试运行以下代码....但我收到此代码示例的错误
代码:
错误:
我究竟做错了什么?在这种情况下,谷歌不是我的朋友,我希望你能帮助我:)
java - Swing 的 HTMLEditorKit 类中的 href 允许哪些协议?
我使用一个应用程序(AppWorx!请有人创建这个标签!),它允许以 html 格式输入有关计划作业的文档。
我一直在尝试创建具有如下链接的待命文档:
该页面显示在 Java 应用程序本身内部,并且任何指向 http:// 的链接都会在用户的浏览器窗口中打开。但是像上面这样的电话链接会导致弹出一个大错误窗口,显示以下错误:
其他协议也会失败(http 除外)。如果我有一个 mailto: 链接,而不是收到上述错误,它会将我带到电子邮件地址的域部分。
我相信编译该应用程序的此类的任何版本都已有数年(也许很多年)的历史。
谁能告诉我这个类的限制是什么,或者是否存在解决方法?
Appworx 的文档表明,除非从 jnlp 调用应用程序,否则即使是 http 链接也不起作用(这是某种沙盒的东西吗?)。尽管如此,这里没有人以任何其他方式启动应用程序。