2016-10-26 3 views
0

한 번에 하나의 단어 만 바꾸려고합니다. 나는 여기서 다른 해답을 찾고있다. 그러나 지금까지 코딩 한 것들이 훨씬 더 단순하다고 생각한다. 사용자가 선택하는 단어를 사용자가 선택하는 다른 단어로 바꾸고 싶습니다. 두 개의 텍스트 필드와 버튼을 가지며 사용자가 버튼을 클릭 할 때마다 텍스트 필드에서 텍스트를 가져 와서 텍스트 영역에서 바꿔야하는 단어를 바꿉니다. 내 문제는 바꾸기 버튼을 클릭하면 텍스트 영역에있는 다른 텍스트가 삭제되고 대체 작업을 수행중인 단어 만 남아 있다는 것입니다. 텍스트 영역의 텍스트를 그 한 단어로 설정했기 때문에 문제가 해결되었다는 것을 알지 못합니다. 여기 내 코드입니다 : 어떤 도움을 주셔서 감사합니다.다른 단어로 단어 바꾸기 사용자가 선택하십시오.

replaceButton.addActionListener(new ActionListener() 
    { 
     public void actionPerformed(ActionEvent e) 
     { 
      String findText = textField.getText(); 
      String replaceText = textField2.getText(); 
      String text = textArea.getText(); 

      text += text.replaceFirst(findText, replaceText); 
      textArea.setText(replaceText); 

     } 
    }); 

답변

0

당신이 말했습니다. textArea의 텍스트를 바꿀 텍스트로 설정합니다. 따라서 textArea의 텍스트를 text.replaceFirst(findText, replaceText)에서 반환 된 업데이트 된 텍스트로 설정하십시오. 또한 결과를 연결하지 않아도됩니다.

시도해보십시오.

replaceButton.addActionListener(new ActionListener() 
{ 
    public void actionPerformed(ActionEvent e) 
    { 
     //the text you want to replace 
     String findText = textField.getText(); 
     //what you want to replace it with 
     String replaceText = textField2.getText(); 
     //all the text in the text area 
     String text = textArea.getText(); 

     //replace first occurrence of "findText" with "replaceText" 
     //returns the altered string 
     text = text.replaceFirst(findText, replaceText); 
     //set text in textArea to newly updated text 
     textArea.setText(text); 

    } 
}); 

정확하게 이해하고 있는지 확인하려면 다음과 같이하십시오.

원래 텍스트 : 나는 고양이를 좋아하고, 고양이는 멋집니다.

find : cats; 대체 : 개.

첫 번째 클릭 출력 : 나는 개를 좋아하고, 고양이는 시원합니다.

두 번째 클릭 출력 : 나는 개를 좋아하고, 개들은 시원합니다.

+0

맞습니다. 그 해결책이 효과가있었습니다. 텍스트 영역의 텍스트를 replacedText 필드로 설정해야한다는 생각이 들었습니다. 정말 고맙습니다! – Jay

관련 문제