我想找出JTextPanel文本的哪一部分被选中.试图调用JTextPane.getSelectionStart()和JTextPane.getSelectionEnd(),但它们总是返回相同于当前插入位置的相同值.我的问题是什么?
我会感谢任何获得当前选择的代码问题.
我有一个JTextPane,当行太多时,vertical会出现滚动条,但是当行太长时,不是出现水平滚动条,而是该行分成两行,如何让水平条出现而不是分成两行两行,我的jTextPane添加如下:
JScrollPane jScrollPane1 = new JScrollPane();
jScrollPane1.setViewportView(jTextPane1);
Run Code Online (Sandbox Code Playgroud) 我可以在没有任何 HTML 问题的情况下解析 JTextPane 的内容:
textPane = new JTextPane();
textPane.setContentType("text/html");
textPane.setText(<b>Hello!</b>);
// ...
setVisible(true);
Run Code Online (Sandbox Code Playgroud)
这导致
你好!
但是每当我尝试将字符串附加到 textPane 时,使用
styledDoc = (StyledDocument) textPane.getStyledDocument();
styledDoc.insertString(styledDoc .getLength(), <b>Goodbye!</b>, null );
Run Code Online (Sandbox Code Playgroud)
(如在这个问题中所见),我的输出是
你好!
<b>Goodbye!</b>
(没有空格) - 所以 html 格式被跳过。
如何将字符串附加到我的 JTextPane 对象并保留添加部分的 HTML 格式?
我有以下问题:我想将JTextPane内容类型的光标更改text/html为Cursor.TEXT_CURSOR.但是,设置时setCursor(new Cursor(Cursor.TEXT_CURSOR))会被忽略.我也尝试在鼠标监听器中设置光标,但它也直接更改回标准光标.如果内容类型是text/plain,则光标默认为文本光标.有没有人知道如何实现这一目标?我创建了一个SCCEE来显示这种行为:
import java.awt.Cursor;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.WindowConstants;
public class TextPaneHtmlCursor extends JFrame {
private JScrollPane jScrollPane1;
private JTextPane jTextPane1;
public TextPaneHtmlCursor() {
initComponents();
}
private void initComponents() {
jScrollPane1 = new JScrollPane();
jTextPane1 = new JTextPane();
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
jTextPane1.setContentType("text/html");
jTextPane1.setCursor(new Cursor(Cursor.TEXT_CURSOR));
jScrollPane1.setViewportView(jTextPane1);
getContentPane().add(jScrollPane1);
pack();
}
public static void main(String args[]) {
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new …Run Code Online (Sandbox Code Playgroud) 我在将图像集成到 text/html JTextPane 时遇到问题。JTextPane 使用以下文本初始化:
<html>
<head>
<style type="text/css">
</style>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我插入文本:
kit.insertHTML(doc, doc.getLength(), "<b>" + string + "</b><br>" , 0, 0, HTML.Tag.B);
Run Code Online (Sandbox Code Playgroud)
以这种方式插入的所有文本都会正确显示,但是当我尝试使用以下命令插入 base64 编码的图像时:
kit.insertHTML(doc,doc.getLength(), "<img src=\"data:image/jpeg;base64," + base64Code + "\"/>", 0, 0, HTML.Tag.IMG);
Run Code Online (Sandbox Code Playgroud)
我只得到了一个占位符图像。当尝试使用正常的源路径时,它起作用了。然而,在线获取 Base64 代码并使用它也为我提供了一个占位符图像,而完全相同的代码可以在 w3school.com 的 HTML tryit 编辑器上运行。
所以我有一个 JScrollPane,我需要滚动(仅垂直)通过居中的自动换行文本。文本后面应该是静态的、不可滚动的部分透明图像。
我的第一种方法是将图像添加到 JScrollPane 中的 JTextPane。由于强制图像从其存在的位置滚动而失败。
我的第二种方法是使 JTextPane 的背景透明并在 JLabel 上显示 JTextPane 后面的图像。由于 JTextPane 的背景无法在 JScrollPane 中透明,因此失败。- 现在我可以让它透明,但它会留下损坏、颜色错误和错位的文本以及随机出现在 JTextPane 上的滚动条。
我的第三种方法是使用 JTextArea 代替并在其后面显示图像。由于 JTextArea 无法将文本居中,这失败了。
我的第四种方法是使用 JLabel 来显示文本。由于 JLabel 无法自动换行,这失败了。尽管有些人似乎对此进行了 html 修复,但没有一个有效,因为它们都包裹在不正确的位置。
所以我不确定接下来应该尝试什么,任何帮助表示赞赏。
我在任何地方都进行了搜索和研究,找到了一个没有结果的答案.所以我再次寻求帮助.
我想在桌面java swing应用程序中显示格式化文本.该文本将在一些变量对象的基础上编程生成,并且不可编辑.
我不知道是否最好使用JTextPane或JEditorPane,或者是什么.问题是我找不到任何解释如何使用它们的手册或教程.我是否必须创建HTMLDocument才能插入文本?我该如何创建它?...
在这种情况下,是显示文本的正确方法吗?或者我可以使用表格或标签或类似的东西.
我需要你的一些建议,如果有一些地方我可以学习如何去做,请告诉我.
我正在创建一个聊天应用程序.在这个聊天应用程序中,我必须使用Java Swing JTextPane来为某些特定字符串提供样式,例如用户的显示名称和消息的时间.这就是为什么我选择JTextPane了JTextArea.在JTextPane中,我无法追加String,所以我创建了一个String缓冲区来追加String,然后我就这样做了jTextPane.setText(stringBuffer.toString()).
这是我的问题:当我将一个字符串附加到JTextPanevia a时StringBuffer,会有一个延迟.如何在一个字符串中逐行追加一个字符串JTextPane?
我想动态地更改写在JTextPane上的某些文本.我有一个String数组,其中包含应该更改的单词
String ListMethod [] = {"forward", "backward", "left", "right"};
Run Code Online (Sandbox Code Playgroud)
我已经阅读了一些帖子,许多人建议使用JTextPane或JEditorPane来编辑文本,但大部分答案都是针对静态文本的.我希望以这样的方式进行:当我在文本窗格中键入"向前"或"向后"等时,它会检测到这些单词并更改颜色.我该怎么办呢?
谢谢你的帮助.
我想删除我JTextPane作为用户类型的内容,我的意思是
JTextPane.addKeyListener(new java.awt.event.KeyAdapter()
{
public void keyTyped(java.awt.event.KeyEvent evt)
{
searchFieldHandler(evt);
}
});
private void searchFieldHandler(java.awt.event.KeyEvent evt)
{
text = searchField.getText() + String.valueOf(evt.getKeyChar());
**searchField.setText("");**
// doing sth with text
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用(不删除内容和最后输入的字符仍然存在)怎么做?
java ×10
jtextpane ×10
swing ×7
html ×2
jeditorpane ×2
jscrollpane ×2
append ×1
cursor ×1
formatting ×1
jlabel ×1
keylistener ×1
scroll ×1
selection ×1
text ×1