-3

だから私はかなり低レベルのJavaプログラミングでプログラムを作っています。これは私が問題を抱えているものです:

//The String fillText is given a value earlier in the program
if ("".equals(txa1.getText()))
{
    txa1.setText(fillText);
    txa1.setVisible(true);
}
else if ("".equals(txa2.getText()))
{
    txa2.setText(fillText);
    txa2.setVisible(true);
}
else if ("".equals(txa3.getText()))
{
    txa3.setText(fillText);
    txa3.setVisible(true);
}
else if ("".equals(txa4.getText()))
{
    txa4.setText(fillText);
    txa4.setVisible(true);
}
else if ("".equals(txa5.getText()))
{
    txa5.setText(fillText);
    txa5.setVisible(true);
}
...

このコードは、常にすべてのテキストエリア (txaX) を fillText で埋めるように見えます。true を返した最初のステートメントのみを実行し、if-else ステートメントから抜け出すことを期待していました。

スイッチケースでやろうとしたのですが、プログラムの実行中に文字列が変更されるため失敗しました。

なにが問題ですか?

前もって感謝します!

4

3 に答える 3

0

条件を注意深く調べる必要があります。条件がfalseの場合、基本的に前任者が実行されます。私はあなたがあなたが達成しようとしていることの論理についてもっと考えることを提案します。

于 2013-03-20T17:37:41.390 に答える
0

それはループ内にあります。間違いなく問題の原因です。ループ外では、1つのブロックのみに移動します。ループなしで実行することはできません。それ以外の場合は、1つのブロックのみが実行されます。

于 2013-03-20T17:00:25.853 に答える
0
"".equals(txa1.getText())

上記の各条件はtrueを返すと思います。

getText()メソッドは常に空の文字列、つまり "" を返します。

于 2013-03-20T16:59:02.673 に答える