使用bookClasses SimpleTurtle的Java简单绘图程序

使用bookClasses SimpleTurtle的Java简单绘图程序,java,oop,mouseevent,mouselistener,turtle-graphics,Java,Oop,Mouseevent,Mouselistener,Turtle Graphics,对于我的在线Java类,我一直在尝试使用一个简单的绘图程序。我正在使用(运行你需要这个库的程序)创建一个包含海龟的世界对象。为了画画,我一直在用鼠标听器。我的问题是我有两个窗口:一个是我画的,另一个是线条显示的。我想在同一个窗口上画线。是我正在使用的海龟的文档。(我在这里使用的是继承自SimpleTurtle的Turtle)。无论如何,我的代码如下: import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; cl

对于我的在线Java类,我一直在尝试使用一个简单的绘图程序。我正在使用(运行你需要这个库的程序)创建一个包含海龟的世界对象。为了画画,我一直在用鼠标听器。我的问题是我有两个窗口:一个是我画的,另一个是线条显示的。我想在同一个窗口上画线。是我正在使用的海龟的文档。(我在这里使用的是继承自SimpleTurtle的Turtle)。无论如何,我的代码如下:

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

class MyMouseAdapter extends MouseAdapter {
   World worldObj = new World();
   Turtle turtle = new Turtle(1000, 1000, worldObj);

    public void mousePressed(MouseEvent e) {
        int xPressed = e.getX();
        int yPressed = e.getY();
        System.out.printf("Mouse Clicked at: %d, %d%n", xPressed, yPressed);
        turtle.hide();
        turtle.penUp();
        turtle.moveTo(xPressed, yPressed);
   }
   public void mouseReleased(MouseEvent e) {
       int xReleased = e.getX();
       int yReleased = e.getY();
       System.out.printf("Mouse Released at: %d, %d%n", xReleased, yReleased);
       turtle.show();
       turtle.penDown();
       turtle.moveTo(xReleased, yReleased);
       turtle.hide();
   }
}

public class WorldTest2 {   
   public WorldTest2() {
       World worldObj = new World();
       worldObj.addMouseListener(new MyMouseAdapter());
   }

   public static void main(String[] args) {
       WorldTest2 test = new WorldTest2();
   }   
}

我知道为什么它不起作用(我在一个世界上创造海龟,但在另一个世界上创造鼠标侦听器),但我不知道如何修复它。有什么帮助吗?

在WorldTest 2类中添加一个
getter()
方法

public class WorldTest2{
      World worldObj;
      public World(){
           worldObj = new World();
       }
       public World getWorld(){ //Now call this in MyMouseAdapter Class 
           return worldObj;         // instead of creating new Object of World
       }
 }
MyMouseAdapter
类中

class MyMouseAdapter extends MouseAdapter {
   World worldObj = new WorldTest2().getWorld();
}

嗯,我以为我什么都试过了,但我想我错了!我一边胡闹,一边想出了一个解决办法

我刚换了衣服

   public WorldTest2() {
   World worldObj = new World();
   worldObj.addMouseListener(new MyMouseAdapter());
   }

而且效果很好

   public WorldTest2() {
   MyMouseAdapter draw = new MyMouseAdapter();
   draw.worldObj.addMouseListener(draw);
   }