问题描述
- Java Swing小程序,哪里不对?
-
我先是用Java写了一个小程序:
运行以后得到了正确的结果,也就是输出123。但是把它改成Java Swing以后,奇怪的事情发生了:结果只能输出最后一位,也就是3。
这是Java Swing的代码片段。
我想知道是什么地方出了问题;以及要怎样修改,才能得到正确的结果。谢谢大家。
解决方案
t1.setText(t1.getText() + s2)
解决方案二:
问题在于你的处理代码中,每次都是s1.setText(s2),将解析到的某个数据赋值到文本t1,三次循环后值发送了覆盖了。
正确你应该是在for循环外面定义一个变量,然后把解析的值收集起来,一起显示。
String showValue = "";
for(int i =0;i<s.length;i++){
showValue+=s[i];
}
t1.setText(showValue);
这样就行了,而且字符串解析返回的本来就是String类型,你没有必要先转成Integer,又再转成String ,多麻烦啊。
解决方案三:
t1.setText(s2)第一次执行其实确实添加的是"1",但执行第二次的时候就改成了"2",第三次执行就改成了"3",所以最后显示出来的一直是"3",你可以把
t1.setText(t1.getText()+" "+s2)。
解决方案四:
setText执行三次 每一次 都会覆盖前一次 最后 只会输出最后一次setText写入的数据
解决方案五:
只显示最后一个结果,set是覆盖操作。
时间: 2024-11-02 01:30:01