Java中JTextArea如何在指定的某行某列输入内容

已经设置好了一个7行7列的文本域
JTextArea a=new JTextArea(7,7);

假如我想在第3行的7列分别输入“1 2 3 4 5 6 7”,我应该怎么输入?
如果想在第4行第5列输入“hello”又该怎么办?

可以通过调用JTextArea的setText()和replaceRange()方法来实现
要在第3行的7列输入“1 2 3 4 5 6 7”,可以将整个文本内容设置为一个包含换行符和制表符的字符串,然后使用setText()方法将其设置为文本域的内容。具体实现如下:

String text = "1\t2\t3\t4\t5\t6\t7\n\n\n\n\n\n";
a.setText(text);


其中,\t表示制表符,\n表示换行符。在这个例子中,我们使用了3个换行符将光标移动到第3行。

如果想在第4行第5列输入“hello”,可以使用replaceRange()方法将文本域中该位置的内容替换为新的内容。具体实现如下:

a.replaceRange("hello", a.getLineStartOffset(3) + 4, a.getLineStartOffset(3) + 9);


在这个例子中,我们使用getLineStartOffset()方法获取第4行的起始偏移量,然后加上5和10,分别表示在第5列和第9列之间插入新的内容。

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/745462
  • 除此之外, 这篇博客: Java Swing详细操作中的 JTextArea 文本域组件 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 原文链接

    JTextArea说明
    JTextArea()创建一个默认的文本域
    JTextArea(int rows,int columns)创建一个具有指定行数和列数的文本域
    JTextArea(String text)创建一个包含指定文本的文本域
    JTextArea(String text,int rows,int columns)创建一个既包含指定文本,又包含指定行数和列数的多行文本域
    //声明文本域
     JTextArea ta = new JTextArea(8, 20);