If-else语句不适用于模型

时间:2013-10-23 10:52:55

标签: java swing if-statement

我想要什么

在JPanel上,我有一个JButton和一个JTextArea。按下JButton后,必须在JTextArea中打印某些文本。这个特定的文本由if-else语句决定。 if-else的条件基于整数变量R。

基本上它是一项调查,就像我正在尝试提出的问答方式。我用R来记录用户的答案。当用户单击某个选项时,R的值会更新。

我使用了一个字符串变量你的电话。如果最后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";
            }

问题

执行时,无论结果总是“无结果”,这意味着R的值总是不是我预测的总数。但这不可能是正确的,因为我将R的值与

一起打印出来
txtrphoneresult.setText(yourphone + R);

结果输出为“NO Result 1749”。这是不可能的,因为它表明R的值被更新。如果它的1749然后输出应该是“Galaxy Mega 5.8”。我不知道为什么当明确满足if条件时,它会从else语句中获取你的电话输出。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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;

答案 2 :(得分:0)

您的嵌套if-else语句不正确。 If-else条件应为

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