JTextPane 的文本光标 HTML
Text cursor for JTextPane with HTML
我遇到以下问题:我想将内容类型为 text/html
的 JTextPane
的光标更改为 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 TextPaneHtmlCursor().setVisible(true);
}
});
}
}
非常感谢!
所以在进一步挖掘之后,EditorKit
(在本例中为 HTMLEditorKit
)似乎负责决定应该使用什么游标。
您可以使用类似...
的方式更改 "default" 光标
jTextPane1.setContentType("text/html");
((HTMLEditorKit)tp.getEditorKit()).setDefaultCursor(cursor);
默认的"default"定义为private static final Cursor DefaultCursor = Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR);
,这很烦人...
我遇到以下问题:我想将内容类型为 text/html
的 JTextPane
的光标更改为 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 TextPaneHtmlCursor().setVisible(true);
}
});
}
}
非常感谢!
所以在进一步挖掘之后,EditorKit
(在本例中为 HTMLEditorKit
)似乎负责决定应该使用什么游标。
您可以使用类似...
的方式更改 "default" 光标jTextPane1.setContentType("text/html");
((HTMLEditorKit)tp.getEditorKit()).setDefaultCursor(cursor);
默认的"default"定义为private static final Cursor DefaultCursor = Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR);
,这很烦人...