当前位置: 代码迷 >> J2SE >> awt事件的疑点
  详细解决方案

awt事件的疑点

热度:113   发布时间:2016-04-23 20:16:03.0
awt事件的疑问
最近学到awt的事件了,学KeyEvent可以用KeyAdapter的时候看到书里面的例子,结果和我猜到的不太一样代码是这样的
import java.awt.*;
import java.awt.event.*;
public class app18_8{
static Frame frm = new Frame ();
static TextField txf = new TextField (18);
static TextArea txa = new TextArea("",4,19,TextArea.SCROLLBARS_NONE);

public static void main (String args[]){

frm.setSize(200,150);
frm.setTitle("Key Event");
frm.setLayout(new FlowLayout(FlowLayout.CENTER));
txf.addKeyListener(new KeyLis());
txa.setEditable(false);

frm.add(txf);
frm.add(txa);
frm.setVisible(true);

}
static class KeyLis extends KeyAdapter{
public void keyPressed(KeyEvent e){
txa.setText("");
if(e.isActionKey())
txa.append("Action key is pressed\n");
else 
 txa.append(e.getKeyChar()+" is pressed\n");

}
}
}
执行之后的截图是这样的
图上面显示a is pressed s ispressed可是keyPressed()方法里的第一行不是清空TextArea里面的内容吗?应该只能有一行被显示出来啊,现在的结果是TextArea中的内容显示两行之后再清空,不科学?

------解决思路----------------------
.............刚试了一下
在Eclipse和MyEclipse中
在Eclipse中是你那个样子的, (我没截图,就不再打开了)
在MyEclipse中,是这样的
  相关解决方案