rtnValue = swiJcb.isSelected()?"1":"0" + ","
+CommboBoxUtil.getCommboValue("eventType", String.valueOf(ustageJcb.getSelectedItem()))+","
+ alarmJtf.getText() +"," 
+ normalJtf.getText() + "," 
+dcleanJcb.isSelected()?"1":"0";Type mismatch: cannot convert from String to boolean
后来改了一下 String s= dcleanJcb.isSelected()?"1":"0";

rtnValue = swiJcb.isSelected()?"1":"0" + ","
+CommboBoxUtil.getCommboValue("eventType", String.valueOf(ustageJcb.getSelectedItem()))+","
+ alarmJtf.getText() +"," 
+ normalJtf.getText() + "," 
+s;
行了
请大伙说说是怎么一回事呢
和优先级有关吗?为什么是String to boolean。
为什么是cannot convert from String to boolean

解决方案 »

  1.   

    应该是有关系的,你改成
    rtnValue = swiJcb.isSelected()?"1":"0" + ","
            +CommboBoxUtil.getCommboValue("eventType", String.valueOf(ustageJcb.getSelectedItem()))+","
            + alarmJtf.getText() +"," 
            + normalJtf.getText() + "," 
            +(dcleanJcb.isSelected()?"1":"0");试试
      

  2.   

    +dcleanJcb.isSelected()?"1":"0";
    这里加个括号应该可以,改为:+(dcleanJcb.isSelected()?"1":"0");
      

  3.   

    我刚看了看书,认真的查看了遍是这样的:
    1.[]()方法调用
    2.!,~,++,-- +(一元),-(一元) ,()(强制转换),new
    3.* / %
    4.+ -
    5.<< >> >>>
    6.<  <=  >  >= instanceof
    7.== !=
    8.&
    9^
    10.|
    11.&&
    12.||
    13.?:
    14.= += -+ *= /= %= &= |= ^= <<= >>= >>>=
    累!
      

  4.   

    就是由于优先级的问题
    你第一次这样写的
    rtnValue = swiJcb.isSelected()?"1":"0" + ","
            +CommboBoxUtil.getCommboValue("eventType", String.valueOf(ustageJcb.getSelectedItem()))+","
            + alarmJtf.getText() +"," 
            + normalJtf.getText() + "," 
            +dcleanJcb.isSelected()
    ?"1":"0";
    由于+号的运算级药高于?:,所以编译的时候先将红色部分当做bool表达式进行处理,而他是个String类型,‘?’号前要求是boolean型的,所以提示cannot convert from String to boolean 
      

  5.   

    还有就是java的编译对操作符的扫描顺序是从左到右逐个操作符执行的。
    给你一个经典的例子
    int i = 5;
    int a;
    a = (i++)+(i++)+(i++);
    System.out.println("i = " + i );
    System.out.println("a = " + a );
      

  6.   

    最简单的a+b==c?1:0,先执行+;
    平时都是靠感觉,真到较真的时候还是的看书啊