2011-12-01 116 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