关于java textArea.setText()的问题 20
本程序其中有一个方法:publicvoidprint(){t.setText("");SetkeySet=Information.StudentInfo.keySet()...
本程序其中有一个方法:
public void print(){
t.setText("");
Set keySet=Information.StudentInfo.keySet();
for(Object key: keySet){
t.append(key+" "+Information.StudentInfo.get(key)+"\n");
}
}
目的在于先清空textArea,再添加map里边的内容,但是会出现这种情况:
map里边只有一组数据(一个key和一个值)的时候:
比如说:
第一次使用此方法:显示出 010(key值) stu(值)
第二次使用的时候(没有添加其它key值的情况下)010(key值) stu(值)
010(key值) stu(值)
大概就是这样,显示两遍,表明setText第二次的时候不管用;
第三次正常;第四次又不正常;
如果第一次让其他方法运行以显示的是其他内容,那么使用此方法可以成功先清空之前文本;
如果StudentInfo这个map里边有多组key和值,setText可以正常清空文本;
如果设置setText("OK")等等而括号里边不是null或""的话,程序正常运行;
综上所述,只有setText("")或者设置为null的时候并且map里边只有一组key的时候,输出在偶数次的时候不清空。。。。。
希望我已经把问题说的明白一点了
请问,到底是怎么回事? 展开
public void print(){
t.setText("");
Set keySet=Information.StudentInfo.keySet();
for(Object key: keySet){
t.append(key+" "+Information.StudentInfo.get(key)+"\n");
}
}
目的在于先清空textArea,再添加map里边的内容,但是会出现这种情况:
map里边只有一组数据(一个key和一个值)的时候:
比如说:
第一次使用此方法:显示出 010(key值) stu(值)
第二次使用的时候(没有添加其它key值的情况下)010(key值) stu(值)
010(key值) stu(值)
大概就是这样,显示两遍,表明setText第二次的时候不管用;
第三次正常;第四次又不正常;
如果第一次让其他方法运行以显示的是其他内容,那么使用此方法可以成功先清空之前文本;
如果StudentInfo这个map里边有多组key和值,setText可以正常清空文本;
如果设置setText("OK")等等而括号里边不是null或""的话,程序正常运行;
综上所述,只有setText("")或者设置为null的时候并且map里边只有一组key的时候,输出在偶数次的时候不清空。。。。。
希望我已经把问题说的明白一点了
请问,到底是怎么回事? 展开
展开全部
我这里测试没有问题,不知道你是什么时候调用的print方法。可能出错是在调用方法的那里,而不是这个方法本身。
追问
我是ActionListener内部类直接调用此方法的。点击某按钮然后执行操作。不知道有什么地方出错了
追答
没你的代码不知道原因。
写了个小demo给你,你参考下。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class Test extends JFrame{
public Test(){
final JPanel panel = new JPanel();
JButton btn = new JButton("按钮");
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(panel, "Hi", "Hello", JOptionPane.OK_OPTION);
}
});
panel.add(btn);
this.add(panel);
this.setBounds(0, 0, 100, 100);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new Test();
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询