【发布时间】:2012-01-02 11:57:00
【问题描述】:
我正在尝试移动一个矩形,但我不知道该怎么做,我知道它与“mouseClicked(MouseEvent e)”有关,但不知道如何使用它。这是我到目前为止的代码:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class MovRect extends Applet implements MouseMotionListener, MouseListener {
Color color = Color.green;
int x=30,y=30,w=150,l=150;
String MouseMotion ="";
public void init()
{
addMouseListener(this);
addMouseMotionListener(this);
}
public void paint(Graphics g)
{
super.paint(g);
g.setColor(color);
g.drawRect(x, y, w, l);
}
public void mouseClicked(MouseEvent e)
{
String clickDesc;
if (e.getClickCount() == 2)
clickDesc = "double";
else
clickDesc = "single";
System.out.println("Mouse was " + clickDesc + "-clicked at location (" +
e.getX() + ", " + e.getY() + ")");
int mouseX = e.getX();
int mouseY = e.getY();
if( mouseX >= x && mouseX <= x+w && mouseY >= y && mouseY <= y+l )
{
}
else
{
}
this.repaint();
}
public void mouseDragged(MouseEvent e)
{
System.out.println("mouse is being dragged at location (" + e.getX() + ", " + e.getY() + ")");
MouseMotion ="mouseDragged";
repaint();
}
public void mouseMoved(MouseEvent e)
{
System.out.println("mouse is being moved at location (" + e.getX() + ", " + e.getY() + ")");
MouseMotion ="mouseMoved";
repaint();
}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
}
【问题讨论】:
-
您希望矩形何时移动,您希望将它移动到哪里?不知道你为什么是螺柱,你已经创建了一个程序,它用指定的 x 和 y 绘制一个矩形。您还可以监听鼠标移动和鼠标点击,并在鼠标移动或点击时记录鼠标的 x 和 y 位置。如果您更改框的 x 或 y,该程序甚至准备重新绘制。你不是自己写过这个程序吗?哪一部分你不明白?