{相关信息}
鼠标事件类(MouseEvent)指组件中发生的鼠标动作事件,例如按下鼠标、释放鼠标、单击鼠标、鼠标光标进入或离开组件的几何
图形、移动鼠标、拖动鼠标。当鼠标移动到某个区域或鼠标单击某个组件时就会触发鼠标事件。使用鼠标事件必须给组件添加一个MouseListener
接口的事件处理器,该接口包含以下 5 个方法:
void mouseClicked(MouseEvent e):当鼠标在该区域单击时发生
void mouseEntered(MouseEvent e):当鼠标进入该区域时发生
void mouseExited(MouseEvent e):当鼠标离开该区域时发生
void mousePressed(MouseEvent e):当鼠标在该区域按下时发生
void mouseReleased(MouseEvent e):当鼠标在该区域放开时发生
{实现效果图}
实验过程中,在panel区,明显可以看出单击可按下的区别。按一下马上松开是一个点击,获取一次位置信息。
如果按下不松开,移动后一会儿,再松开,不会获取位置信息。
{相关代码}
packagesup.orange.learn;import java.awt.*;importjava.awt.event.MouseEvent;importjava.awt.event.MouseListener;importjava.awt.event.WindowAdapter;importjava.awt.event.WindowEvent;/*** Created by re-x on 11/2/14.*/
public class MouseEventDemo extendsFrame {
Panel panel;
TextField textfield1, textfield2;publicMouseEventDemo () {super();
init();
}public static voidmain(String[] args) {newMouseEventDemo();
}public voidinit() {
setLayout(new GridLayout(3, 1));
textfield1= new TextField(30);
textfield2= newTextField();
add(textfield1);
add(textfield2);
panel= newPanel();
panel.setBackground(Color.CYAN);
add(panel);
panel.addMouseListener(newMouseListener() {
@Overridepublic voidmouseClicked(MouseEvent e) {
textfield2.setText("x="+e.getX()+";y="+e.getY());
}
@Overridepublic voidmousePressed(MouseEvent e) {
textfield1.setText("mouse pressed");
}
@Overridepublic voidmouseReleased(MouseEvent e) {
textfield1.setText("mouse released");
}
@Overridepublic voidmouseEntered(MouseEvent e) {
textfield1.setText("mouse entered");
}
@Overridepublic voidmouseExited(MouseEvent e) {
textfield1.setText("mouse exited");
}
});
addWindowListener(newWindowAdapter() {
@Overridepublic voidwindowClosing(WindowEvent e) {super.windowClosing(e);
dispose();
System.exit(0);
}
});
setSize(200, 300);
setVisible(true);
}
}