java - 将指针位置传递给 Java 中的对象

标签 java oop

我有一个名为 Board 的 JPanel 类,它有一个静态子类 MouseHanlder,它沿着 Board 中的相应监听器跟踪鼠标位置。我的 Board 类有字段pointerX 和pointerY。

如何将 e.getX() 和 e.getY() 从 MouseHandler 子类传递到其父类(super class) JPanel?我尝试了getters、setters、super,但无法获得子类和父类之间的数据传输。我确信这是一个概念问题,但我陷入困境。

谢谢!

由于大众的需求,一些代码。这是没有任何尝试通过的代码:

public class Board extends JPanel {


int x; // Mouse pointer fields.
int y;

public Board() {

            blah blah

    MouseHandler handler = new MouseHandler();
    addMouseMotionListener(handler);

}


static class MouseHandler implements MouseMotionListener {
    int pointerX;
    int pointerY;

    public void mouseMoved(MouseEvent e) {

             i'd like to do something like:
                 super.x = e.getX();
                 super.x = e.getY();

                 or

                 Board.setX() = e.getX(); // Missing setters below, this is just an example.
                 Board.setX() = e.getY();




    }

}

}

最佳答案

这是因为您的类的静态实现看不到您的 jpanel 实例。您可以通过传递对 MouseAdapter (或 MouseListener)的引用来实现

class MyPanel extends JPanel
{
  MyPanel()
  {
    item.addMouseListener(new MyListener(this));
  }

  void pass(int x, int y)
  {
    //whatever
  }

  class MyListener extends MouseAdapter
  {
    MyPanel ref;

    MyListener(MyPanel ref)
    {
      this.ref = ref;
    }

    public void mousePressed(MouseEvent e)
    {
      ref.pass(e.getX(), e.getY());
    }
  }
}

关于java - 将指针位置传递给 Java 中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2496798/

相关文章:

Java序列化-将对象写入文件后修改对象

java - 运行时切换运行配置

java - 数据库多线程插入(更新)和单线程顺序插入(更新)的性能比较?

python - 多参数值错误

java - 调用由 SWIG 生成的 JNI 的 UnsatisfiedLinkError?

java - 我正在尝试创建一个 Queue 类,但不断收到似乎与泛型有关的错误。为什么我会收到此错误?

java - 我无法正确打印我的卡片对象

.net - 契约优先 SOA : Designing Business Domain: WCF

c++ - 具有 shared_ptr vector 的类的析构函数导致错误

Javascript OOP 在对象内部使用函数