【发布时间】:2011-11-06 18:50:37
【问题描述】:
当 setEditable 被禁用时,如何在 JTextArea 中添加插入符号?
需要让插入符号可见时的示例代码:
public void run(){
JFrame frame = new JFrame();
JTextArea text = new JTextArea();
text.setEditable(false);
String line = "added line";
text.append(line);
text.setCaretPosition(text.getCaretPosition() + line.length());
frame.getContentPane().add(text);
frame.setSize(300,300);
frame.setVisible(true);
}
我想要实现的是,当用户在 TextArea 中键入时,字符一定不能显示。键入的字符被重定向到 OutputStream 并接收到将在 TextArea 中显示的相应 InputStream。这很好用,但由于 setEditable(false),插入符号被隐藏了。
【问题讨论】:
-
我只是测试您的代码(在 Windows 7 中),文本区域并没有按照您说的那样做...也许如果您添加更多代码,可能会更好地看到问题
-
你说的OutputStream在哪里?抱歉,我没看准你的目标。
-
这是一个示例代码,试图展示我如何构建 TextArea。此代码也可以看到问题,它运行带有 TextArea 的单个 Frame,禁用编辑并附加 String,这没关系,但 Caret 不可见,这就是我卡住的地方。
-
好的。我觉得还有什么问题……那么,看两个答案。他们都工作。 @StanislavL 答案的第一行是目前最好的解决方案,简单而干净:)