问题标签 [jtextpane]

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.

0 投票
4 回答
4100 浏览

java - JTextPane 防止在父 JScrollPane 中滚动

我有以下对象“树”:

当使用鼠标滚轮滚动外部 JScrollPane 时,我遇到了一个烦人的问题。一旦鼠标光标接触到内部 JScrollPane,滚动事件似乎就被传递到该 JScrollPane 并且不再被第一个处理。这意味着滚动“父” JScrollPane 停止。

是否可以禁用内部 JScrollPane 上的鼠标滚轮?或者更好的是,如果没有可滚动的内容(大多数时候文本窗格只包含 1-3 行文本)禁用滚动,但如果有更多内容则启用它?

0 投票
3 回答
8207 浏览

java - HTML JTextPane 换行支持

我正在使用 JTextPane 来编辑 HTML。当我在 GUI 组件中输入换行符并在 JTextPane 上调用 getText() 时,我得到一个带有换行符的字符串。如果我随后创建一个新的 JTextPane 并传入相同的文本,则将忽略换行符。

为什么输入换行符时 JTextPane 不插入 <br> 标签?有没有好的解决方法?

样本输出:

我意识到我可以在调用 setText 之前将换行符转换为 HTML 换行符,但这也会在 HTML 和 BODY 标记之后转换换行符,而且看起来很愚蠢。

0 投票
2 回答
2321 浏览

java - 如何在 JTextPane 中获取所选文本的样式?

我正在尝试创建一个简单的所见即所得编辑器,它允许用户选择文本并将其加粗/下划线/斜体。目前,用户可以选择文本,右键单击它并从弹出菜单中选择粗体,最终将粗体样式应用于所选文本,如下所示:

粗体样式设置如下:

我想知道的是,是否可以获取当前选定文本的样式,这样如果用户尝试“加粗”一些已经粗体的文本,我可以检测到这一点并编写代码取消粗体这个文本而不是简单地再次应用粗体样式?

就像是:

梦想成真,但我对此没有希望。我真正希望的是要么被告知我做错了并被展示“道路”,要么被指向实现这一目标的循环方法的方向。

非常感谢您的宝贵时间。

0 投票
1 回答
4033 浏览

java - 如何将 JTextPane 样式的内容输出到 HTML,包括自定义样式?

我目前使用 JTextPane 来允许用户添加/编辑文本。它允许粗体/斜体/下划线(我计划将来允许链接)。它还允许用户放入按钮,这些按钮作为自定义样式插入。面板看起来像:

<<图片已删除>>

我希望能够将内容保存/加载为 HTML - 内容将合并到 Flash swf 中。我能够像这样以 HTML 格式获取内容:

如果 JTextPane 仅包含粗体/斜体/下划线文本,则此方法可以正常工作。虽然输出过于复杂。我也希望能够输出我的自定义样式,但是当我尝试时出现此错误:

我的自定义样式是这样插入的(cID 是像“{0-0}”这样的字符串):

函数 createRefButton(String cID):

NRefButton 覆盖 toString,它返回 "{"+cID+"}"。

我想知道的是:我应该修改插入“样式”的方式来得到这个错误吗?

有没有一种不同/更好的方法可以让我从此 JTextPane 获取 HTML?我想要的只是粗体/斜体/下划线文本周围的 HTML 标签,而不是过于复杂,因为我必须去掉不必要的 HTML,并且“样式”以 button.toString() 的形式出现。

或者我应该实现自己的 toHTML() 方法,用所需的标签包裹粗体/斜体/下划线文本?我不介意这样做(在某些方面我更喜欢它),但我不知道如何获取给定 JTextPane 文档的样式。我想如果我能够获得这些样式,我可以遍历它们,将样式文本包装在适当的标签中?

理想情况下,图示的 JTextPane 内容将输出为:

我也希望能够将输出 HTMLJTextPane - 我不介意为此编写自己的 fromHTML() 方法,但我需要能够先获取 HTML。

感谢您花时间阅读我的问题。

0 投票
3 回答
621 浏览

java - 在 JTextPane 中选择嵌入项

AJTextPane让您嵌入JComponents和图像。当您选择文档的一部分时,文本会突出显示,但嵌入的项目不会。您可以通过CaretListener事件后的方式通知嵌入式组件,但我想知道是否有办法在鼠标选择期间突出显示它们?

0 投票
3 回答
6458 浏览

java - 在 JTextPane (Java Swing) 中更改段落的背景颜色

是否可以在 Java Swing 中更改段落的背景颜色?我尝试使用 setParagraphAttributes 方法(下面的代码)设置它,但似乎不起作用。

0 投票
4 回答
4150 浏览

java - 如何在 JTextPane 中复制样式文本

我正在尝试使用 JTextPane 创建一个所见即所得的编辑器。

我正在使用 DefaultEditorKit.CopyAction 在编辑器中复制文本。但是这种方法不保留文本的样式。有人可以告诉我如何复制 JTextPane 中的文本并保留样式吗?

0 投票
4 回答
10587 浏览

java - 从 JTextPane 获取原始文本

在我的应用程序中,我使用 aJTextPane来显示一些日志信息。由于我想突出显示此文本中的某些特定行(例如错误消息),我将其设置contentType为“ text/html”。这样,我可以格式化我的文本。

现在,我创建了一个 JButton,将其内容复制JTextPane到剪贴板。这部分很简单,但我的问题是,当我调用时myTextPane.getText(),我得到了 HTML 代码,例如:

而不是只获取原始内容:

有没有办法只获取我JTextPane的纯文本内容?还是我需要自己将 HTML 转换为原始文本?

0 投票
1 回答
332 浏览

java - JTextPane 按键模拟

我有一个 JTextPane 集成,它应该对按键事件执行预定义的步骤。如果我手动输入,它似乎工作正常。但是出于测试目的,我必须在此集成上模拟按键事件。测试环境使得给定的 JTextPane 不会添加到任何其他控件。在将 JTextPane 的可见性和可编辑性设置为 true 并请求焦点后,我尝试使用 Robot 类。问题是我看不到任何按键事件的到来,并且 JTextPane 的内容仍然是空的。请给我一些建议。谢谢,

彼得

0 投票
2 回答
9386 浏览

java - Java JTextPane 更改所选文本的字体

我有一个 JTextPane(或 JEditorPane,我可以使用任何一个都没有问题)。如何将选定区域的字体更改为特定字体?

textpane.getSelectedText().setFont()不会工作。(即使使用字体系列)