问题标签 [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 - JTextPane使用 html垂直对齐文本和图像
到目前为止,我几乎已经尝试了所有方法,我还读到,Java 的 HTML 渲染真的很有限,只能像 HTML 3/2 或类似的东西。所以大多数现代 CSS 样式都不起作用。基本上我需要小图标(10x10px)与多行文本垂直对齐,但我找不到有效的解决方案。我发现的唯一解决方法是创建一个表:
这有效,但仅适用于单行,如果有换行,它显然不再有效。
通常在浏览器中工作的所有其他解决方案在 JTextPane 中不起作用,例如style="float: left;"
在 div 中设置表格,或者仅vertical-align: middle;
与 img 和 div 元素一起使用。
是否有一种“肮脏”的方式来操纵 HTMLEditorKit 的 getViewFactory 以返回低于它们应该呈现的几个像素的所有 ImageView?
java - 带有 HTML 的 JScrollBar + JTextPane 无法正确滚动到最大值
我在我的一个项目中遇到了以下问题,我花了一段时间才弄清楚是什么导致了问题,我可以用我附上的这个简单的代码来重现它。
我正在使用 HTMLEditorKit 向 JTextPane 动态添加内容。我将自动滚动设置为关闭,因为我想手动控制它(当用户向上滚动、停止以及触发事件以再次激活时)。
现在的问题是,当我将 JScrollBar 的值设置为最大值时,它是一个不同的值,只是在将内容插入 HTMLDocument 之后的那一刻。当我再次手动触发 setValue 时,它会滚动到正确的最大值。
似乎 JScrollBar 在添加到 HTMLDocument 之后就没有意识到正确的 maximumValue ,并且只是在(延迟的)时间之后。
使用
不是解决方案,因为它也无法正常工作。它也不会滚动到最大值,在下面留下一个视图像素,这是我不想要的。
这是重现该问题的完整代码。如果单击右键(添加和滚动),它会在正文中插入一个 DIV 元素。到达最后一个可见行的那一刻,它不能正确滚动到最后一个最大值,最后一行被隐藏。但是当您手动单击左侧按钮以触发第二个 scrollToEnd() 时,它会正确滚动到最大值。
代码:
这个代码替换虽然有效,但留下了一个小间隙,也没有正确滚动到最大值:
java - 如何正确初始化 JTextPane 样式表,以便其他启用 HTML 的组件不受样式影响?
我正在尝试使用 aJTextPane
来呈现一些 HTML 并向其应用 CSS 样式表。这意味着我正在使用HTMLEditorKit
和StyleSheet
类。我知道它们都HTMLEditorKits
共享相同的默认StyleSheet
实例,因此如果您更改此默认样式表对象,您将在应用程序级别应用更改(所有呈现 HTML 的组件)。
但在我的示例中,我认为我已经通过StyleSheet
基于默认值创建自己的实例来避免这种情况。但是,这不起作用,正如显示的JTree
那样,它按照样式表呈现,该样式表仅适用于JTextPane
.
那么如何正确地初始化这些对象,以使应用程序中没有 CSS 溢出(这样文本窗格根据 CSS 呈现,而树没有)?
注意:上图中红色下划线表示溢出问题,是我后来添加的(不是,不是渲染器)。
java - 在 JTextPane 中显示和保存图像
我需要编写一个像 Word 这样的编辑器。它需要支持编辑文件,插入和删除图像和其他一些东西。
我选择 JTextPane 来做这些事情。
我像这样使用 imageIcon 加载和显示图像:
我现在面临的问题是如何将图像保存到文件中?我使用 HTMLDocument 和 HTMLEditorKit 来实现 save 方法,主要逻辑如下:
Kit 和 doc 是我的 Page 类(派生自 JTextPane 的 Page)中的私有成员。在saveAs
方法执行后,保存的文件不包括图像:
从 HTML 文件中我们可以看到image path
没有编码到那里,我想知道如何实现saveAs
支持保存图像的方法?
非常感谢!
java - 的行为JEditorPane 中的键(使用 HtmlEditorKit)
如果我把光标放在中间<p>A line of text</p>
并点击enter我得到
这是在我的 Linux 开发机器上。
当我在 Windows 机器上运行相同的应用程序时,我得到
即\n
插入而不是创建额外的<p>
元素。由于\n
只是在 HTML 中呈现为一个空间,enter所以当我在 Windows 上时基本上不起作用。
问题:如何在 Windows 上强制插入<p>
行为?enter
ajax - 类型“AjaxControlToolkit.HtmlEditorExtender”没有名为“EnableSanitization”的公共属性
因为我是初学者,所以我使用了 html 编辑器,但它在本地运行良好,但在服务器上它显示此错误类型'AjaxControlToolkit.HtmlEditorExtender'
没有名为“ EnableSanitization
”的公共属性。
我有一个财产,EnableSanitization="false"
但我不知道其中有什么问题
java -
使用自定义 HTMLEditorKit 时Java JTextPane 忽略标记
在我的应用程序中,我使用嵌入在 JScrollPane 中的 JTextPane 来显示使用 HTML 标记格式化的文本。起初我使用 JTextArea,但后来切换到 JTextPane 以便能够使用 HTML 和颜色。然后我需要 JTextPane 来支持基于字母的换行,而不仅仅是默认的空格换行。换句话说,如果内容太长,它应该被包裹起来,JScrollPane 的水平滚动条不应该是可见的。
因此,我在这个答案中找到了一个完美的解决方案:https ://stackoverflow.com/a/6330483/3871673 。它为 JTextPane 使用自定义 HTMLEditorKit。
但是使用这个解决方案,JTextPane 会忽略任何带有 HTML 标记的换行符<br>
。我不得不承认我真的不知道解决方案中的代码是如何工作的。如果有人能找到如何让 HTML 新行<br>
标签与这个解决方案一起工作,那就太好了。
这是一个最小、完整且可验证的示例:
java - 使用 Java HtmlEditorKit 保存汉字
我正在尝试通过以下方式使用 HtmlEditorKit 保存包含中文字符的 HtmlDocument(使用 UTF-8 编码保存):
在输出 HTML 文档中,我得到两个 2 字节字符(amp#55361;amp#57102;)而不是一个 4 字节字符。Java 可以通过将两者结合起来理解它是哪个符号,但 HTML 不能。
关于如何保存它的任何建议,以便可以正确显示 HTML 页面?
这是输出html: