gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 00:52:15 26 4
gpt4 key购买 nike

我有一个名为 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com