如何在Java中将鼠标事件添加到绘图对象?
在我的程序中,一开始我希望球静止,并在单击鼠标时开始动作 我需要遵循什么方法 我尝试了以下几点:如何在Java中将鼠标事件添加到绘图对象?,java,Java,在我的程序中,一开始我希望球静止,并在单击鼠标时开始动作 我需要遵循什么方法 我尝试了以下几点: public class Ball extends Applet implements Runnable{ int x=200; int y=450; int dx=10; int dy=10; int r=30; private Image i; private Graphics g
public class Ball extends Applet implements Runnable{
int x=200;
int y=450;
int dx=10;
int dy=10;
int r=30;
private Image i;
private Graphics graph;
@Override
public void init() {
setSize(500,500);
}
@Override
public void start() {
Thread t1=new Thread(this);
t1.start();
}
@Override
public void run() {
while(true){
if(x+dx>this.getWidth()-r){
x=this.getWidth()-r;
dx=-dx;
}
else if(x+dx<0){
x=0;
dx=-dx;
}
else{
x+=dx;
}
if(y+dy>this.getHeight()-r){
y=this.getHeight()-r;
dy=-dy;
}
else if(y+dy<0){
y=0;
dy=-dy;
}
else{
y+=dy;
}
repaint();
try {
Thread.sleep(50);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
}
@Override
public void stop() {
}
@Override
public void destroy() {
}
@Override
public void update(Graphics g) {
//double buffering
if(i==null){
i=createImage(this.getSize().width,this.getSize().height);
graph=i.getGraphics();
}
graph.setColor(getBackground());
graph.fillRect(0, 0, this.getSize().width, this.getSize().height);
graph.setColor(getForeground());
paint(graph);
g.drawImage(i, 0, 0, this);
}
@Override
public void paint (Graphics g){
g.setColor(Color.PINK);
g.fillOval(x, y, r, r);
}
}
public类Ball扩展Applet实现Runnable{
int x=200;
int y=450;
int dx=10;
int-dy=10;
int r=30;
私人形象一;
专用图形;
@凌驾
公共void init(){
设置大小(500500);
}
@凌驾
公开作废开始(){
螺纹t1=新螺纹(此);
t1.start();
}
@凌驾
公开募捐{
while(true){
如果(x+dx>this.getWidth()-r){
x=this.getWidth()-r;
dx=-dx;
}
else if(x+dxthis.getHeight()-r){
y=这个.getHeight()-r;
dy=-dy;
}
否则,如果(y+dy必须添加鼠标侦听器,则可以检查mousePressed或mouseClicked方法
检查
您可以创建您的MouseStenerMouseStener ms=new mouseStener();
它将生成MouseListener的方法,然后您只需修改所需的方法(mousePressed或mouseClicked)即可完成。不要忘了将MouseListener添加到要侦听的对象中。object.addMouseListener(ms);
您必须添加鼠标侦听器,在您的情况下,您可以检查mousePressed或mouseclick方法
检查
您可以创建您的MouseStenerMouseStener ms=new mouseStener();
它将生成MouseListener的方法,然后您只需修改所需的方法(mousePressed或mouseClicked)即可完成。不要忘了将MouseListener添加到要侦听的对象中。object.addMouseListener(ms)
虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,则仅链接的答案可能会无效。-现在这是一个更好的答案。顺便说一句,当您在上面修改帖子时,通常不需要包含“编辑”:像其他一些网站一样,我已经为你编辑了这些内容,但是你应该退出低质量的帖子过滤器,现在你已经改进了帖子。谢谢你的建议,我是这个网站的新手,我更希望当我犯错误时有人告诉我。虽然这个链接可能会回答问题,但最好在这里和下面包含答案的基本部分提供链接以供参考。如果链接页面发生更改,只有链接的答案可能会无效。-现在这是一个更好的答案。顺便说一句,与其他一些网站不同,当您在上修改您的帖子时,通常不需要包含“编辑”,因此我已经为您编辑了这些内容,但您现在应该已经退出了低质量帖子过滤器改进后的帖子。谢谢你的建议,我是这个网站的新手,我希望有人告诉我什么时候我犯了错误