我正在用Java开发一个简单的应用程序,我想知道是否有任何方法可以在一个textarea(非空)的光标位置插入附加文本(在句子中间的某处)放置在某个组件的单击上。有人可以指导我如何完成它
答案 0 :(得分:9)
如果这是JTextArea component,您可以使用.append
方法将文本添加到文本区域的末尾,或使用.insert
方法将新文本插入特定位置
如果需要在当前插入位置插入文本,请使用.getCaretPosition方法
答案 1 :(得分:6)
textArea.replaceSelection(text);
来自API:
用表示的新内容替换当前选定的内容 由给定的字符串。如果没有选择,则相当于 插入给定文本
答案 2 :(得分:5)
退房:JTextComponent.getCaretPosition()
。
方法getCaretPosition()
由JTextArea
继承,您可以使用它来获取光标位置。然后,您可以使用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);