日期:2014-05-20  浏览次数:20725 次

JTextArea更新问题
情况是: 有一个JTextArea对象 textArea ,刚开始时 textArea.setText("kongping");也显示出来了,后来创建了一个按钮 ,想一点击按钮, textArea显示另外的字符串出来而不是原来的字符串 ,于是就增加了一个按钮事件,在里面写了
  textArea.setText(" dui bu qi"); 可点击按钮后,还是显示原来的字符串。这个怎么解决

------解决方案--------------------
主要缺一句:
area.setText(getText());
改了一下,参考一下:



import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;

//import com.sun.org.apache.xml.internal.security.Init;

public class JTextAreDemo extends JFrame
{
static int i=0; //为了显示每次都变化.
JTextArea area; //定义成成员变量.
//设置文本初始信息
private String text = "我是大王,你是?";
private JTextAreDemo()
{
init();
this.setVisible(true);
this.setSize(400, 400);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//初始化窗体
private void init()
{
JPanel panel = new JPanel(new GridLayout(2,1));
//初始化文本框
//final JTextArea area = new JTextArea(); //不定成成员变量,要定义成final.
area = new JTextArea();
area.setText(getText());

JButton button = new JButton("更变文本内容");
button.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent arg0) 
{
setText("我是小王,你是大王吗?"); //只改变了text内容。
area.setText(getText()); //这是关键的。!!!!
}
});
panel.add(area);
panel.add(button);
this.getContentPane().add(panel);
}

public void setText(String textAreaString)
{
//text = textAreaString;
text = textAreaString+(i++); //为了效果更明显。
}
public String getText()
{
return text;
}
  
public static void main(String args[])
{
new JTextAreDemo();
}
}