读书人

监听器的一些疑义

发布时间: 2013-07-08 14:13:00 作者: rapoo

监听器的一些疑问。

package graphic;

import java.awt.Frame;
import java.awt.Label;
import java.awt.event.MouseListener;
import java.awt.TextField;
import java.awt.event.MouseEvent;
import java.awt.event.WindowListener;
import java.awt.event.WindowEvent;
import java.awt.event.MouseMotionListener;

public class LisenerTest implements MouseListener,MouseMotionListener,


WindowListener
{
private Frame f;
private TextField tf;

public static void main(String[] args)
{
LisenerTest lt = new LisenerTest();
lt.go();

}

public void go()
{
f = new Frame("监听器样列!");
//System.out.println(f.getLayout().toString());
f.add(new Label("单击拖动鼠标"),"North");
tf = new TextField(30);

f.add(tf,"South");
f.addMouseListener(this);
f.addMouseMotionListener(this);
f.addWindowListener(this);

f.setSize(300,300);
f.setVisible(true);
}

@Override
public void windowOpened(WindowEvent e) {
// TODO Auto-generated method stub

}

@Override
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
System.exit(0);
}

@Override
public void windowClosed(WindowEvent e) {
// TODO Auto-generated method stub

}

@Override
public void windowIconified(WindowEvent e) {
// TODO Auto-generated method stub

}

@Override
public void windowDeiconified(WindowEvent e) {
// TODO Auto-generated method stub

}

@Override
public void windowActivated(WindowEvent e) {
// TODO Auto-generated method stub

}

@Override
public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub

}

@Override
public void mouseDragged(MouseEvent e) {
// TODO Auto-generated method stub
String s = "鼠标坐标:X = "+e.getX()+" Y = " +e.getY();
tf.setText(s);
}

@Override
public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub

}

@Override
public void mouseClicked(MouseEvent e) {


// TODO Auto-generated method stub

}

@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub

}

@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub

}

@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
String s = "按下鼠标";
tf.setText(s);
}

@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
String s = "鼠标移开";
tf.setText(s);
}


}
/**

1,该类实现了监听器接口后,事件发生之后,就会从这个被指定的监听器(this)中去寻找解决方案。这

样能保证寻找到正确的方法么?实现这么多接口,会不会出现同名的方法,而导致出现错误?


2,可否直接new 接口(){ };解决掉问题。接口可以生成临时的对象么?


3,MouseListener
MouseMotionListener
两个接口有何区别呢? */


[解决办法]
不同的事件会找对应的监听器实现
如果实现接口如出冲突的函数,那得你自己解决

读书人网 >J2EE开发

热点推荐