0

Javaでプログラミングを始めたばかりで、簡単な順番待ちリストを作成しています。それはすべてうまくいくようですが、テキストフィールドが空になっていないことを確認するために、ifelse構文を含めることにしました。問題は、エラーなどが発生しないために無視されているように見えることです。ifelseの例をたくさんグーグルで検索しましたが、どういうわけか問題を解決できません。何が間違っているのでしょうか。以下に関連するコードを見つけることができます。前もって感謝します。

public void actionPerformed(ActionEvent e) {

    // check if veld1 is filled in.
    if ( veld1 == null || veld1.equals( "" ) ) { 
        // give error
        System.out.println("U heeft niets ingevuld in veld1");
    }
    else {
        veld4.setText( veld3.getText() );
        veld3.setText( veld2.getText() );
        veld2.setText( veld1.getText() );
        textveld1.append( veld4.getText() + "\n" );
        veld1.setText("");
    }
}
4

4 に答える 4

8

veld1は文字列ではなく、Swingコントロールのようです。あなたはおそらくやりたい

if(veld1.getText() == null || veld1.getText().equals( "" )
于 2012-09-05T20:18:24.827 に答える
1

veld1がJTextFieldを保持している場合は、ステートメントをに変更することveld1 == null || veld1.getText() == null || veld1.getText().equals( "" )をお勧めします。現在のコードでは、フィールドの内容ではなく、フィールド自体が存在するかどうかを確認します。

于 2012-09-05T20:18:41.547 に答える
1

残りの部分を見ずに付与することは困難ですが、veld1.equals("")疑わしいように見えます。veld1空の文字列と比較していveld1ますが、コンポーネントのように見えます。多分あなたは意味しましたveld1.getText().equals("")(そして、同様にveld1.getText() == null

于 2012-09-05T20:19:21.303 に答える
0

veld1.equals( "")はveld1.getText()。equals( "")と同じではありません。最初のオブジェクトは、veld1オブジェクトを空の文字列と比較しており、常にfalseになります。

于 2012-09-05T20:19:13.450 に答える