在JTextArea中插入文本

我正在用Java开发一个简单的应用程序,我想知道是否有任何方法可以在一个textarea(非空),光标所在的位置插入其他文本(在句子中间的某处)点击一些组件。 有人可以指导我如何完成它

如果这是一个JTextArea组件,您可以使用.append方法将文本添加到文本区域的末尾,或使用.insert方法将新文本插入特定位置。

如果需要在当前插入位置插入文本,请使用.getCaretPosition方法

 textArea.replaceSelection(text); 

来自API:

用当前字符串表示的新内容替换当前选定的内容。 如果没有选择,则相当于给定文本的插入

检查: JTextComponent.getCaretPosition()

方法getCaretPosition()JTextAreainheritance,您可以使用它来获取光标位置。 然后,您可以使用JTextArea.insert(String str, int pos)在该位置插入文本。

样品:

 JFrame frame = new JFrame(); frame.setLayout(new BorderLayout()); final JTextArea jta = new JTextArea("Hello world\nHello world\nHello world"); JButton btn = new JButton("Add"); btn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { int pos = jta.getCaretPosition(); //get the cursor position jta.insert("Some more", pos); //insert your text } }); frame.add(jta, BorderLayout.CENTER); frame.add(btn, BorderLayout.SOUTH); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true);