我有一个JTextArea
,它从另一个JTextArea
中拾取文本,并显示该文本,如下图所示:
我希望JTextArea像上一幅图像一样包装rahul的写入行。
下面是我较小的JTextArea
中的代码,其中文本显示在较大的JTextArea
中。
SimpleDateFormat sdf=new SimpleDateFormat("HH:mm");
String str=MainFrame.un+" ("+sdf.format(new Date())+") :"+txtSend.getText();
DataServices.send(runm+":"+str); // for sending this to its socket
txtView.append("\n\n\t\t\t\t\t"+str);
txtSend.setText("");
txtSend.requestFocus(true);
答案 0 :(得分:0)
我希望它从rahul写在下面的位置开始,而不是从文本区域的左边缘开始
JTextArea不支持此功能。 JTextArea用于显示简单文本。
您可以使用JTextPane。它允许您控制文本的属性,并且属性之一可以是左缩进。因此,您可以为单行设置段落属性,使其缩进特定数量的像素。
因此,不必使用制表符对文本进行缩进,而只需在添加文本行时设置左缩进即可。
还请注意,JTextPane没有实现append方法,因此您需要通过使用以下命令将文本直接添加到Document中来创建自己的文本:
textPane.getDocument.insertString(...);
所以基本逻辑是:
StyledDocument doc=(StyledDocument)textPane.getDocument();
doc.insertString(...);
SimpleAttributeSet attrs = new SimpleAttributeSet();
//StyleConstants.setFirstLineIndent(attrs, 50);
StyleConstants.setLeftIndent(attrs, 50);
doc.setParagraphAttributes(0,doc.getLength(),attrs, false);
这将更改您刚刚添加到文本窗格的文本行的缩进。