-1

ボタンをクリックすると、テキストフィールドを編集可能にするかどうかを切り替える必要があります。GUI が開くと、テキストフィールドが編集可能になります。

public void actionPerformed( ActionEvent evt)
{
    if(inputField.setEditable() == (true))
    {
        inputField.setEditable(false);
    }
    else
    {
        inputField.setEditable(true);
        resultMessage.setText("");
        resultMessage.setText("Edit Button Pressed");
    } 

ここで何が間違っていますか?

else ステートメントが正しいことはわかっていますが、IF の開始が間違っているだけです。どこが間違っているのかわかりません。


追加の質問:

public void actionPerformed( ActionEvent evt)
{
    if(inputField.isEditable() == (true))
    {
        inputField.setEditable(false);
    }
    else
    {
        inputField.setEditable(true);
        inputField.setText("");
        resultMessage.setText("Edit Button Pressed");
    }  

    if(inputField.getBackground() == Color.RED)
    {
        inputField.setBackground(Color.WHITE);
    } 
    else
    {
        inputField.setBackground(Color.RED);
        resultMessage.setText("Colour Button Pressed");
    }

}

私は現在2つのIFを持っていますが、明らかに最初のIFは2番目のIFの動作を停止します.これを回避するにはどうすればよいですか. ?

4

1 に答える 1

3

が trueかどうかを確認してsetEditable()いますが、これは本当に意味がありません。結局、これは void を返し、ブール値のパラメーターが必要です。より大きな問題は、「セッター」フィールドではなく「ゲッター」フィールドを介して編集可能なステータスをチェックする必要があることです。isEditable()

if (inputField.isEditable()) {
   //....
} else {
   //...
}

MadProgrammer が指摘しているように、この情報はすべて Java API で簡単に利用できるため、よく知っておく必要があります。


あなたの新しい質問に関して編集してください:

私は現在2つのIFを持っていますが、明らかに最初のIFは2番目のIFの動作を停止します.これを回避するにはどうすればよいですか. ?

いいえ、最初の if/else は2 番目の if/else ブロックには影響しません。あなたの問題は別の場所にあります。それでも問題が解決しない場合は、stackoverflow に関する新しい質問として、追加情報とともにこれを尋ねることを検討してください。

また、これは不必要に冗長であることに注意してください。

if(inputField.isEditable() == (true))

上記のように、より適切に記述されています。

if (inputField.isEditable())
于 2013-05-01T01:37:40.073 に答える