2013-05-25 5 views
0

문자열에 randomnessOn이 포함되어 있고 그 반대의 경우는 그 반대의 경우 문자열의 값을 변경하려는 켜기/끄기 버튼이 있습니다. on/off 버튼의 상태 값만 포함 할뿐만 아니라 String을 재정의 할 수도 없습니다. 나는이 코드를 시도했다.문자열의 단어 바꾸기

if(command.equals(randFor) | command.equals(randBack) | command.equals(randButton)){ 
     if(option.contains("randomnessOf")){ 
      randomness = true; 
      randState = "ON"; 
      randStateX = 975; 
      randStateY = 245; 
      option = option.replace("randomnesOff", "randomnessOn"); 
     } 
     if(option.contains("randomnessOn")){ 
      randomness = false; 
      randState = "OFF"; 
      randStateX = 970; 
      randStateY = 245; 
      option = option.replace("randomnesOn", "randomnessOff"); 
     } 
     loadOptions(); 
    } 

그것은 randState 문자열의 텍스트를 변경하고 텍스트의 위치를 ​​변경하지만 늘 option 문자열에서 단어를 교체, 그래서 어떻게 문자열에서 단어를 대체 할 것입니까?

답변

3

randState 문자열의 텍스트가 변경되고 텍스트의 위치가 변경되지만 옵션 문자열의 단어가 바뀌지 않으므로 문자열의 단어를 바꾸려면 어떻게해야합니까?

Java 문자열은 변경할 수 없습니다. 그들을 변경할 수 없습니다.

이 줄 :

option = option.replace("randomnesOn", "randomnessOff"); 

교체 관련 문자 option의 원의 값을 기반으로 새 문자열을 만드는 것입니다. 이제이 새로운 문자열을 사용하여 GUI를 업데이트해야합니다. 예를 들어, Swing 버튼이나 레이블 객체에서 setText(option)을 호출해야 할 수 있습니다.

option에 새 값을 할당하면 해당 지역 변수에만 영향을줍니다. 분명히 당신의 GUI에 영향을 미치지 않을 수도 있습니다. 당신이 뭔가를하지 않으면 그 일이 일어나기 위해서을하십시오.

+0

@vidit - 나는 그것을 볼 수 있습니다. 그러나 분명히 그를 위해 일하지 않습니다. –

+0

@ StephenC- 나는 편집하기 전에 그것을 썼다. 단지 주석을 삭제할 것이다. – vidit

1

"옵션"이라는 변수로 값 참조를 변경합니다. "Text"가 원래 값인 option으로 설정된 일부 GUI 요소 (예 : JButton)가있을 수 있습니다. 시각적 요소 (예 : JButton)를 업데이트해야하는 경우 명시 적으로 수행해야합니다 (예 : 새 값을 option에 할당 한 후 myButton.setText(option)을 호출하십시오.

0
if(option.contains("randomnessOf")){ 
       //.... 
       option = option.replace("randomnessOff", "randomnessOn");// 
       //randomnessOf with two `s` 
      } 
      if(option.contains("randomnessOn")){ 
       //.... 
       option = option.replace("randomnessOn", "randomnessOff"); 
       //the same as firtst you forgot one 's' 
}