Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中将鼠标事件添加到绘图对象?_Java - Fatal编程技术网

如何在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方法

检查

您可以创建您的MouseStener
MouseStener ms=new mouseStener();

它将生成MouseListener的方法,然后您只需修改所需的方法(mousePressed或mouseClicked)即可完成。不要忘了将MouseListener添加到要侦听的对象中。
object.addMouseListener(ms);

您必须添加鼠标侦听器,在您的情况下,您可以检查mousePressed或mouseclick方法

检查

您可以创建您的MouseStener
MouseStener ms=new mouseStener();

它将生成MouseListener的方法,然后您只需修改所需的方法(mousePressed或mouseClicked)即可完成。不要忘了将MouseListener添加到要侦听的对象中。
object.addMouseListener(ms)

虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,则仅链接的答案可能会无效。-现在这是一个更好的答案。顺便说一句,当您在上面修改帖子时,通常不需要包含“编辑”:像其他一些网站一样,我已经为你编辑了这些内容,但是你应该退出低质量的帖子过滤器,现在你已经改进了帖子。谢谢你的建议,我是这个网站的新手,我更希望当我犯错误时有人告诉我。虽然这个链接可能会回答问题,但最好在这里和下面包含答案的基本部分提供链接以供参考。如果链接页面发生更改,只有链接的答案可能会无效。-现在这是一个更好的答案。顺便说一句,与其他一些网站不同,当您在上修改您的帖子时,通常不需要包含“编辑”,因此我已经为您编辑了这些内容,但您现在应该已经退出了低质量帖子过滤器改进后的帖子。谢谢你的建议,我是这个网站的新手,我希望有人告诉我什么时候我犯了错误