0

私が欲しいもの

JPanel には、JButton と JTextArea があります。JButton を押すと、JTextArea 内に特定のテキストを出力する必要があります。この特定のテキストは、if-else ステートメントによって決定されます。if-else の条件は整数変数 R に基づいています。

基本的には、私が作ろうとしている質問と回答のような調査です。R を使用して、ユーザーからの回答を記録します。ユーザーが選択肢をクリックすると、R の値が更新されます。

私は文字列変数 yourphone を使用します。最終的に R の値が 120 の場合、携帯電話は文字列に更新されます。Xperia Z。

私が話しているこの最後の JPanel は、結果を表示する場所です。R の合計値は、if-else ステートメントで使用されます。

構造

このように変数を開始します

int R=0;
String yourphone;

これがJPanelのコードです

final JPanel result = new JPanel();
        result.setBackground(Color.BLACK);
        getContentPane().add(result, "name_17130054294139");
        result.setLayout(null);


        final JTextArea txtrphoneresult = new JTextArea();
        txtrphoneresult.setRows(5);
        txtrphoneresult.setBounds(68, 84, 285, 148);
        result.add(txtrphoneresult);

        JButton btnShowResult = new JButton("Show Result");
        btnShowResult.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                txtrphoneresult.setText(yourphone + R);

            }
        });
        btnShowResult.setBounds(68, 29, 103, 32);
        result.add(btnShowResult);

これが私のif-elseステートメントの外観です

if(R==1749)
        {
            yourphone = "Galaxy Mega 5.8";
        }
if(R==1726)
        {
            yourphone = "Xperia Z";
        }
else
            {
                    yourphone = "NO Result";
            }

問題

実行時に、結果が常に "NO Result" であっても、R の値は常に予測された合計とは異なることを意味します。しかし、Rの値を横に出力するため、それは正しくありません

txtrphoneresult.setText(yourphone + R);

結果出力は「NO Result 1749」です。Rの値が更新されたことを示しているため、これは不可能です。1749 の場合、出力は「Galaxy Mega 5.8」になります。if 条件が明確に満たされたときに、else ステートメントから yourphone の出力を取得する理由がわかりません。

4

3 に答える 3

6

else次の場合は、最初の後に追加する必要があります。

if(R==1749) {
    yourphone = "Galaxy Mega 5.8";
} else if(R==1726) {
    yourphone = "Xperia Z";
} else {
    yourphone = "NO Result";
}

それ以外の場合はyourphone、."NO Result"R == 1749

于 2013-10-23T10:54:21.057 に答える
1
if(R==1749)
  yourphone = "Galaxy Mega 5.8";
else if(R==1726)
  yourphone = "Xperia Z";
else
  yourphone = "NO Result";

this will solve your problem;
于 2013-10-23T10:57:46.577 に答える
0

ネストされたif-elseステートメントは正しくありません。If-else状態であるべき

if(R==1749){
    yourphone = "Galaxy Mega 5.8";
}
else if(R==1726){
    yourphone = "Xperia Z";
}
else{
     yourphone = "NO Result";
}
于 2013-10-23T10:57:09.987 に答える