java—将类jframe对象传递到一个side函数中

zazmityj  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(304)

这个问题在这里已经有答案了

从内部类对象获取外部类对象(8个答案)
5天前关门了。
我创建了一个side类来帮助管理在所有gui jframe中重用的函数
我使用的是一个未修饰的jframe,并且我添加了一个简单的函数,可以将它拖来拖去

public class SideFunctions {

static int xMouse, yMouse;

public static void frameDragMouseDragged(JFrame frame, MouseEvent e) {
    int x = e.getXOnScreen();
    int y = e.getYOnScreen();

    frame.setLocation(x - xMouse, y - yMouse);
}

public static void frameDragMouseClicked(JFrame frame, MouseEvent e) {
    xMouse = e.getX();
    yMouse = e.getY();
}

在扩展jframe的entrancescreen类中,我尝试这样做

private void createFrameDragLabel() {
    frameDrag = new JLabel();
    frameDrag.addMouseMotionListener(new MouseMotionAdapter() {
        @Override
        public void mouseDragged(MouseEvent arg0) {
            SideFunctions.frameDragMouseDragged(this, arg0);
        }
    });
    frameDrag.addMouseListener(new MouseAdapter() {
        @Override
        public void mousePressed(MouseEvent arg0) {
            SideFunctions.frameDragMouseClicked(this, arg0);
        }
    });
    frameDrag.setBounds(0, 0, 700, 400);
}

我希望'this'引用jframe示例,但它引用的是mousemotionadapter/mouseadapter,如何传递jframe对象本身?

5cg8jx4n

5cg8jx4n1#

this 指当前最内部的类,因此 MouseAdapter . 使用 EntranceScreen.this 相反。

相关问题