public class ChangeField
{
Frame frame;
TextField field;
//获得field的引用
public TextField getField()
{
return field;
} public void go()
{
frame = new Frame("程序测试");
field = new TextField();
frame.add(field, BorderLayout.NORTH);
//添加监听器
frame.addMouseListener(new MouseHandler());
frame.addMouseMotionListener(new MouseMotionHandler());
frame.addWindowListener(new WindowHandler());
frame.setSize(300, 300);
frame.setVisible(true);
}
public static void main(String[] args)
{
ChangeField test = new ChangeField();
test.go();
}
}class MouseMotionHandler implements MouseMotionListener
{
@Override
public void mouseDragged(MouseEvent e)
{
ChangeField field = new ChangeField();
TextField text = field.getField();
String str = "X : " + e.getX() + "Y : " + e.getY();
//问题出在这一行
text.setText(str);
} @Override
public void mouseMoved(MouseEvent e)
{
// TODO Auto-generated method stub
}}
ChangeField field = new ChangeField();
这里 不应该去new一个 应该是使用 e.getSource() 来获得被监听的控件 ..