Java mouseReleased()方法查询
我从一个学习资源中获取了以下代码。当我运行小程序时,我注意到只有在拖动鼠标后才会显示“Up”如果按下鼠标按钮然后在同一位置释放,则不显示“向上”。为什么在后一种情况下不显示“Up”Java mouseReleased()方法查询,java,awt,mouse,Java,Awt,Mouse,我从一个学习资源中获取了以下代码。当我运行小程序时,我注意到只有在拖动鼠标后才会显示“Up”如果按下鼠标按钮然后在同一位置释放,则不显示“向上”。为什么在后一种情况下不显示“Up” // Demonstrate the mouse event handlers. import java.awt.*; import java.awt.event.*; import java.applet.*; /* <applet code="MouseEvents" width=300 he
// Demonstrate the mouse event handlers.
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
/*
<applet code="MouseEvents" width=300 height=100>
</applet>
*/
public class MouseEvents extends Applet
implements MouseListener, MouseMotionListener {
String msg = "";
int mouseX = 0, mouseY = 0; // coordinates of mouse
public void init() {
addMouseListener(this);
addMouseMotionListener(this);
}
// Handle mouse clicked.
public void mouseClicked(MouseEvent mld) {
mouseX = 0;
mouseY = 20;
msg = "Mouse clicked.";
repaint();
}
// Handle mouse entered.
public void mouseEntered(MouseEvent mld) {
mouseX = 0;
mouseY = 30;
msg = "Mouse entered.";
repaint();
}
// Handle mouse exited.
public void mouseExited(MouseEvent mld) {
mouseX = 0;
mouseY = 10;
msg = "Mouse exited.";
repaint();
}
// Handle button pressed.
public void mousePressed(MouseEvent mld) {
// save coordinates
mouseX = mld.getX();
mouseY = mld.getY();
msg = "Down";
repaint();
}
// Handle button released.
public void mouseReleased(MouseEvent mld) {
// save coordinates
mouseX = mld.getX();
mouseY = mld.getY();
msg = "Up";
repaint();
}
// Handle mouse dragged.
public void mouseDragged(MouseEvent mld) {
// save coordinates
mouseX = mld.getX();
mouseY = mld.getY();
msg = "*";
showStatus("Dragging mouse at " + mouseX + ", " + mouseY);
repaint();
}
// Handle mouse moved.
public void mouseMoved(MouseEvent mld) {
// show status
showStatus("Moving mouse at " + mld.getX() + ", " + mld.getY());
}
// Display msg in applet window at current X,Y location.
public void paint(Graphics g) {
g.drawString(msg, mouseX, mouseY);
}
}
//演示鼠标事件处理程序。
导入java.awt.*;
导入java.awt.event.*;
导入java.applet.*;
/*
*/
公共类MouseEvents扩展小程序
实现MouseListener、MouseMotionListener{
字符串msg=“”;
int mouseX=0,mouseY=0;//鼠标坐标
public void init(){
addMouseListener(这个);
addMouseMotionListener(此);
}
//鼠标点击手柄。
公共无效mouseClicked(MouseEvent mld){
mouseX=0;
老鼠=20;
msg=“鼠标单击。”;
重新油漆();
}
//鼠标进入手柄。
公共无效mouseenterned(MouseEvent mld){
mouseX=0;
老鼠=30;
msg=“鼠标输入。”;
重新油漆();
}
//鼠标把手退出。
公共无效mouseExited(MouseEvent mld){
mouseX=0;
mouseY=10;
msg=“鼠标已退出。”;
重新油漆();
}
//把手按钮按下。
public void mousePressed(MouseEvent mld){
//保存坐标
mouseX=mld.getX();
mouseY=mld.getY();
msg=“向下”;
重新油漆();
}
//把手按钮松开。
公共无效MouseEvent mld{
//保存坐标
mouseX=mld.getX();
mouseY=mld.getY();
msg=“向上”;
重新油漆();
}
//鼠标拖动手柄。
公共无效mouseDragged(MouseEvent mld){
//保存坐标
mouseX=mld.getX();
mouseY=mld.getY();
msg=“*”;
showStatus(“在“+mouseX+”、“+mouseY”处拖动鼠标);
重新油漆();
}
//移动鼠标手柄。
public void mouseMoved(MouseEvent mld){
//显示状态
showStatus(“将鼠标移动到“+mld.getX()+”、“+mld.getY()”);
}
//在当前X、Y位置的小程序窗口中显示消息。
公共空间绘制(图形g){
g、 抽绳(味精、慕斯、慕斯);
}
}
拖动时将不会调用鼠标单击
,但将调用鼠标释放
。在单个位置单击时,mousererelease
后面跟着mouseClicked
,因此已单击事件将覆盖已发布的内容
尝试将System.out.println
语句添加到MouseListener
方法中,并在控制台中跟踪输出
// Handle mouse clicked.
public void mouseClicked(MouseEvent mld) {
mouseX = 0;
mouseY = 20;
msg = "Mouse clicked.";
System.out.println("clicked");
repaint();
}
// Handle button pressed.
public void mousePressed(MouseEvent mld) {
// save coordinates
mouseX = mld.getX();
mouseY = mld.getY();
msg = "Down";
System.out.println("down");
repaint();
}
// Handle button released.
public void mouseReleased(MouseEvent mld) {
// save coordinates
mouseX = mld.getX();
mouseY = mld.getY();
msg = "Up";
System.out.println("up");
repaint();
}
// Handle mouse dragged.
public void mouseDragged(MouseEvent mld) {
// save coordinates
mouseX = mld.getX();
mouseY = mld.getY();
msg = "*";
showStatus("Dragging mouse at " + mouseX + ", " + mouseY);
System.out.println("dragged");
repaint();
}
// Handle mouse dragged.
public void mouseDragged(MouseEvent mld) {
// save coordinates
mouseX = mld.getX();
mouseY = mld.getY();
msg = "*";
showStatus("Dragging mouse at " + mouseX + ", " + mouseY);
System.out.println("dragged");
repaint();
}
你应该看到
down
up
clicked
当您单击单个点时
down
dragged
.
.
.
up
当它被拖动时是的,但它被
鼠标点击
事件压倒