0

randomnessOn文字列に値が含まれている場合は文字列の値を変更したいオン/オフボタンがrandomnessOffあり、その逆も同様です。オン/オフボタンの状態の値だけが含まれているわけではないため、文字列をオーバーライドすることはできません。このコードを試しました。

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を置き換えないので、文字列内の単語を置き換えるにはどうすればよいですか?

4

3 に答える 3

3

randState 文字列のテキストを変更し、テキストの位置を変更しますが、オプション文字列の単語を置き換えないので、文字列の単語を置き換えるにはどうすればよいですか?

Java 文字列は不変です。それらを変更することはできません。

この行:

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

の元の値に基づいてoption、関連する文字が置き換えられた新しい文字列を作成しています。GUI を更新するには、この新しい文字列を使用する必要があります。たとえば、setText(option)Swing ボタンまたはラベル オブジェクトを呼び出す必要がある場合があります。

に新しい値を割り当てると、optionそのローカル変数にのみ影響することに注意してください。それは確かにあなたのGUIに影響を与えませんし、影響を与えることもできません...それを実現するために何かをしない限り。

于 2013-05-25T07:33:05.653 に答える
1

「option」という名前の変数によって、値の参照を変更します。おそらく、「テキスト」が の元の値に設定されている GUI 要素 (JButton など) があるとしoptionます。ビジュアル エレメント (JButton など) を更新する必要がある場合は、myButton.setText(option)(新しい値を variable に割り当てた後にoption) 呼び出すなど、明示的に行う必要があります。

于 2013-05-25T07:38:24.240 に答える
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'
}
于 2013-05-25T08:27:09.683 に答える