我将如何切换文本换行JTextpane?
public JFrame mainjFrame = new JFrame("Text Editor");
public JTextPane mainJTextPane = new JTextPane();
public JScrollPane mainJScrollPane = new JScrollPane(mainJTextPane);
mainjFrame.add(mainJScrollPane);
Run Code Online (Sandbox Code Playgroud) 有没有办法获得Style,一个样式名称或甚至比较是否Style在JTextPane插入时我在给出文本的样式的某个位置?因为我的目的,我创建了自定义JTextPane,StyledDocument和DocumentFilter.所以我可以选择Style用于说普通字母和另一种用于数字的样式.我也有切换按钮,当切换设置DocumentFilter以不同的方式格式化数字,而不是定期切换数字格式,所以最后你无法根据JTextPane's getText()方法区分哪些数字受到影响.因此,唯一的方法是比较我将常规和特殊数字样式作为常量的样式.我唯一需要提出的是如何为每个角色获得Style.
我知道有一种JTextPane's方法可以从调用者的位置调用AttributeSet,getCharacterAttributes()但我认为这对我的问题毫无用处.
是否有必要包含代码示例?我不认为这很难想象.如果你想要我,我会包括它.
任何输入将不胜感激.谢谢!
我正在尝试使用非JTextAreaSwing文本组件,并在此代码中尝试显示一个非常简单的网页JTextPane.我能够阅读网页并能够将其放入JTextPane文档中,如我打印出的字符串在调用getTextmy时返回HTMLDocument,但JTextPane中没有显示任何内容.我觉得好像缺少一些基本的东西.提前致谢.
我的SSCCE:
import java.awt.*;
import java.io.IOException;
import java.net.*;
import javax.swing.*;
import javax.swing.text.*;
import javax.swing.text.html.*;
@SuppressWarnings("serial")
public class TestStyledDoc2 extends JPanel {
public static final String GETTY_FILE = "http://www.d.umn.edu/~rmaclin/" +
"gettysburg-address.html";
private HTMLEditorKit htmlKit = new HTMLEditorKit();
private HTMLDocument htmlDocument = (HTMLDocument) htmlKit.createDefaultDocument();
private JTextPane htmlPane = new JTextPane(htmlDocument);
public TestStyledDoc2() {
JScrollPane scrollPane1 = new JScrollPane(htmlPane);
try {
htmlPane.setEditorKit(htmlKit);
URL gettyUrl = new URL(GETTY_FILE);
htmlKit.read(gettyUrl.openStream(), htmlDocument, 0);
System.out.println(htmlDocument.getText(0, htmlDocument.getLength()));
} …Run Code Online (Sandbox Code Playgroud) 我使用不可编辑的JTextPane来显示HTML格式的一些数据.我已将contentType设置为"text/html"并且它可以正常工作.现在我想在JTextPane中添加HTML复选框,并听取他们的更改,并能够检索是否选中了特定的复选框.这可能吗?
JTextPane的文本采用以下格式:
<html><form>
<input type="checkbox" name="checkbox1" value="value" /> checkbox1<br />
</form></html>
Run Code Online (Sandbox Code Playgroud)
我是否应该将JTextPane用于此目的,还是有更好的控制?常规复选框不是一个选项,因为我需要一种HTML格式来轻松设置样式.
我正在制作类似于聊天的应用程序.为此,我有两个JTextPanes,一个是我正在编写的,一个是显示消息的.这是处理从输入到显示的文本传输的代码:
String input = textPane.getText();
if(!input.endsWith("\n")){
input+="\n";
}
StyledDocument doc = displayPane.getStyledDocument();
int offset = displayPane.getCaretPosition();
textPane.setText("");
try {
doc.insertString(offset, input, set);
} catch (BadLocationException ex) {
Logger.getLogger(ChatComponent.class.getName()).log(Level.SEVERE, null, ex);
}
Run Code Online (Sandbox Code Playgroud)
问题是,如果我在输入文本的某些单词上有颜色,则输出都是彩色的.因此,当移动到显示时(在输入时正确显示),颜色将应用于所有文本.关于如何正确移动文本的任何建议?
请注意,其他格式与粗体,斜体等相同
我今天开始使用NetBeans,它一直在游泳,直到我遇到这个块.
我正在尝试将我的jTextPane格式设置为其中的任何HTML.我已尝试更改代码中的内容类型,jTextPane1.setContentType("text/html");但无济于事.我也尝试将设计窗口中的属性更改为相关值,但也没有运气.
经过一些谷歌搜索,我看到Netbeans之前有一个错误,不会让text/html内容正确启用,但它已经解决了几个版本.
有任何想法我如何在窗格中启用HTML?甚至只是另一种获取超链接工作方式.
我在我的应用程序中使用Jtextpane.我需要在jtextpane中添加一些像[PKG-MEDIA]的标签.我希望用户不要编辑这个标签,而他可以在jtextpane中编辑其他文本.
public static void main(String args[]) {
JFrame j = new JFrame("Hello!");
j.setSize(200, 200);
JTextPane k = new JTextPane();
k.setFont(new Font("Akshar Unicode Regular", Font.PLAIN, 17));
k.setText("this is a test code [PKG-MEDIA]. I want to make this tag [PKG-1234] not editable");
j.add(k);
j.setVisible(true);
j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
Run Code Online (Sandbox Code Playgroud) 我创建了一个使用JTextPane的Swing接口.使用以下自定义颜色突出显示JTextPane:
textPane.getHighlighter().addHighlight(startPos, endPos, highlightPainter);
Run Code Online (Sandbox Code Playgroud)
用户还能够以普通方式用光标突出显示文本.
我的问题是,我无法找到一种方法,突出显示的文字由荧光笔对象和光标选择着色为第三种不同的颜色.突出显示对象的突出显示始终优先.
我尝试使用CaretListener对象,但它只在用户手动突出显示后释放鼠标时触发事件.当用户使用光标调整突出显示的区域时,我需要渲染重叠.
我甚至会对光标突出显示优先于突出显示对象的突出显示感到满意,但独特的重叠颜色是一个更好的功能.
以下问题与我的相似:
如何使用LayeredHighlighter - 一个突出显示另一个
但唯一的答案只是链接到覆盖GlassPane的方法.我更喜欢JTextPane或文档级解决方案,因为所选文本的值很重要
textPane.getSelectionStart();
Run Code Online (Sandbox Code Playgroud)
和
textPane.getSelectionEnd();
Run Code Online (Sandbox Code Playgroud) 我正在使用聊天应用程序,我正在使用JTextPane来显示对话,我想在左边插入发件人的消息,在JTextPane的右边插入接收者的消息,我将文本包装在另一个看起来像一个JTextPane的JTextPane中气球.我只能将信息插入左侧,但不能插入右侧!任何建议都会有所帮助和赞赏.您可以从提供的图像中获取创意.谢谢
注意:这个问题不重复,它与组件有关,不是文本对齐或重力!

我想刷新我的ColorPane定义如下:
public class ColorPane extends JTextPane{
/* FYI, The function below allows me to add text with ANSI Coloring */
public void appendANSI(String s) {
// ...
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
在下一个while语句中,我line在一个控制台式窗口中编写.因此,作为控制台,我想在添加新行时自动刷新并向下滚动textPane.
我想通过按a启动以下循环mainButton.
public class mainButton implements ActionListener {
public void actionPerformed (ActionEvent e) {
ColorPane textPane = new ColorPane();
/* FYI, in is a BufferedReader */
while ((line = in.readLine()) != null) {
/* Add automatically in the …Run Code Online (Sandbox Code Playgroud) java ×10
jtextpane ×10
swing ×10
html ×2
html-editor ×1
hyperlink ×1
jscrollpane ×1
netbeans ×1
styling ×1
word-wrap ×1