2 qq 34150866 qq_34150866 于 2016.03.08 01:48 提问

Java Swing小程序,哪里不对?

我先是用Java写了一个小程序:
图片说明
运行以后得到了正确的结果,也就是输出123。但是把它改成Java Swing以后,奇怪的事情发生了:结果只能输出最后一位,也就是3。
这是Java Swing的代码片段。图片说明
我想知道是什么地方出了问题;以及要怎样修改,才能得到正确的结果。谢谢大家。

5个回答

caozhy
caozhy   Ds   Rxr 2016.03.08 09:32

t1.setText(t1.getText() + s2)

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.03.08 09:35

问题在于你的处理代码中,每次都是s1.setText(s2),将解析到的某个数据赋值到文本t1,三次循环后值发送了覆盖了。
正确你应该是在for循环外面定义一个变量,然后把解析的值收集起来,一起显示。

 String showValue = "";
 for(int i =0;i<s.length;i++){
    showValue+=s[i];
 }
 t1.setText(showValue);

这样就行了,而且字符串解析返回的本来就是String类型,你没有必要先转成Integer,又再转成String ,多麻烦啊。

xionglangs
xionglangs   Rxr 2016.03.08 09:44

t1.setText(s2)第一次执行其实确实添加的是"1",但执行第二次的时候就改成了"2",第三次执行就改成了"3",所以最后显示出来的一直是"3",你可以把
t1.setText(t1.getText()+" "+s2)。

qq_33963483
qq_33963483   2016.03.08 13:01

setText执行三次 每一次 都会覆盖前一次 最后 只会输出最后一次setText写入的数据

tongyi55555
tongyi55555   2016.03.09 02:59

只显示最后一个结果,set是覆盖操作。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!