2016-07-17 38 views
1

嗯,我決定編輯所有內容。因此,代碼是這樣的:Swing-在JTextArea的兩個文本點之間添加文本

public void actionPerformed(ActionEvent e) { 
     if (!uiCreator.getTextArea().getText().equalsIgnoreCase("Beggining text")) { 
      JOptionPane.showMessageDialog(null, "You must have main method first", "Error", 
        JOptionPane.ERROR_MESSAGE); 
     } else { 
      n = Integer.valueOf(JOptionPane.showInputDialog("...")); 
      l = Integer.valueOf(JOptionPane.showInputDialog("...")); 
      uiCreator.getTextArea() 
        .setText("Beggining text with few additions"); 

在上面的代碼中,我做了檢查,如果JTextArea包含所需要的文字,如果沒有它會顯示一個錯誤信息。如果是這樣,它會設置一個文字,只有幾個字。

現在。我也有更多JButton s。所以如果點擊一下,它也會做同樣的事情。檢查文字,如果符合所有條件,請設置新的修改文字。但是,現在,我的問題來了。我有這樣的:

public void actionPerformed(ActionEvent e) { 
     if (!uiCreator.getTextArea().getText() 
       .equalsIgnoreCase("Beggining text with few additions")) { 
      JOptionPane.showMessageDialog(null, "Error, you don't have main or JFrame inside main", "Error", 
        JOptionPane.ERROR_MESSAGE); 

     } else { 
      uiCreator.getTextArea() 
        .setText("Beggining text with even more additions"); 
     } 

用來檢查是否有JTextArea「Beggining文本與一些補充」,如果它沒有,甚至多次地將文本更改爲Beggining文本。我有幾個按鈕可以做同樣的事情。現在,我想知道使用setText(some text)方法的一種方法,無論是在添加少量添加文字的情況下還是在添加更多添加內容的情況下使用文本。

+1

只需修改'text'屬性即可。 'String text = textArea.getText(); ... textArea.setText(text);' – hoefling

+0

是的,我可以做到這一點。但問題是我有多個添加不同文本的按鈕。所以我不想檢查每次點擊。 – XTimeX

+1

您上面的評論並未向您解釋您的問題。按鈕與添加文本有什麼關係?請爲我們澄清這個問題,也許會展示更多的代碼。 [mcve]會有很大的幫助。 –

回答

1

請勿使用setText(...)繼續替換所有文本。

相反,你可以用這樣的方法:

replaceSelection(...); 

getDocument().insertString(...); 

改變文本的一部分,或插入新的文本。