JComboBox中。我究竟做错了什么?

时间:2014-12-12 13:19:59

标签: java methods jcombobox

我的代码将c的值返回为null!这有什么问题?

我希望将索引的值添加到字符串c中,但它没有发生,甚至System.out.println("C: "+c+" A: "+a+" B: "+b);的第一个代码也将所有变量都返回为0!

public String getData(){
String c ;
    c = null;
int a = cb1.getSelectedIndex();
int b = cb2.getSelectedIndex();
 System.out.println("C: "+c+" A: "+a+" B: "+b);
    if (a == 1 && b == 1) {
        c=""+a;
    } else if (a == 1 && b == 2) {
        c=""+a;
    } else if (a == 2 && b == 1) {
        c=""+a;
    } else if (a == 2 && b == 2) {
        c=""+a;
    } else if (a == 3 && b == 1) {
        c=""+a;
    } else if (a == 4 && b == 1) {
        c=""+a;
    } else if (a == 4 && b == 2) {
        c="";
    } else if (a == 5 && b == 1) {
        c=""+a+""+b; 
    } else if (a == 5 && b == 2) {
        c=""+a+""+b;
    } else if (a == 6 && b == 1) {
        c=""+a+""+b;
    } else if (a == 7 && b == 1) {
        c=""+a+""+b;
    } else if (a == 8 && b == 1) {
        c=""+a+""+b;
    } else if (a == 8 && b == 2) {
        c=""+a+""+b;
    } else if (a == 8 && b == 3) {
        c=""+a+""+b;
    }


System.out.println("C: "+c+" A: "+a+" B: "+b);

 return c;           
}

4 个答案:

答案 0 :(得分:1)

我不明白你的if / else。这不会做同样的事吗? 我认为你应该看一下场景的预期结果,然后构建你的决策点,而不是所有可能的输入组合。

    public String getData(){
        String c ;
        c = null;
        int a = cb1.getSelectedIndex();
        int b = cb2.getSelectedIndex();
        System.out.println("C: "+c+" A: "+a+" B: "+b);
        if (a <= 4 && b != 2)
        {
           c=""+a; 
        }
        else if (a >= 5)
        {
           c=""+a+""+b; 
        }
        else
        {
           c="";
        }
    }

如果只有3种不同的结果,通常您的代码中通常只能有2个决策点。当您觉得需要创建许多嵌套的if语句时,通常表明您需要重新构建代码

答案 1 :(得分:0)

我已将if {} else {if {} }更改为if{} else if {}

public String getData(){
        String c ;
        c = null;
        int a = cb1.getSelectedIndex();
        int b = cb2.getSelectedIndex();
        System.out.println("C: "+c+" A: "+a+" B: "+b);
        if (a == 1 && b == 1) {
            c=""+a;
        } else if (a == 1 && b == 2) {
            c=""+a;
        } else if (a == 2 && b == 1) {
            c=""+a;
        } else if (a == 2 && b == 2) {
            c=""+a;
        } else if (a == 3 && b == 1) {
            c=""+a;
        } else if (a == 4 && b == 1) {
            c=""+a;
        } else if (a == 4 && b == 2) {
            c="";
        } else if (a == 5 && b == 1) {
            c=""+a+""+b; 
        } else if (a == 5 && b == 2) {
            c=""+a+""+b;
        } else if (a == 6 && b == 1) {
            c=""+a+""+b;
        } else if (a == 7 && b == 1) {
            c=""+a+""+b;
        } else if (a == 8 && b == 1) {
            c=""+a+""+b;
        } else if (a == 8 && b == 2) {
            c=""+a+""+b;
        } else if (a == 8 && b == 3) {
            c=""+a+""+b;
        }

    }

请尝试此代码。

你错过了其他一些条件。

答案 2 :(得分:0)

你的第一个systemoutprintln c必须为null ...如果没有选择,则c为null ... 每次选择改变时你也必须调用这个方法......

尝试不写

else{
   if{
   } else{
        if{...

尝试写一个不错的

else if{...}
else if{...}

答案 3 :(得分:-1)

在连接它们之前,必须将整数变量转换为字符串。例如:

c=""+a.tostring();