将我的Class JFrame对象传递到一个辅助函数中



我创建了一个辅助类来帮助我管理在所有GUI JFrames 中重用的函数

我使用的是一个未经修饰的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对象本身?

this指的是当前最内部的类,因此是匿名的MouseAdapter。请改用EntranceScreen.this

最新更新