2011-12-01 77 views
2

我正在开发一个简单的Java应用程序,我想知道是否有任何方法可以在一个textarea中不插入额外文本(在句子中间的某处)光标放置在点击某个组件的位置。是否有人可以告诉我如何去得到它做在JTextArea中插入文本

回答

9

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

如果你需要插入在当前光标处文本使用.getCaretPosition方法

+0

我的问题是我想在那里光标被放置在文本区域框中的地方插入文本和我怎么知道确切的地点它位于textarea中。 –

+0

更新了我的答案。 – jefflunt

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); 
6
textArea.replaceSelection(text); 

从API:

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

+0

+1我正在寻找这个。 – FirmView