-3

我想知道如何在java中的Frame内移动相机。前任:

frame.moveInsideFrame(pointX,pointY).
4

2 回答 2

1

您将不得不移动框架中的所有内容。例如:

private void moveInsideFrame(int moveX, int moveY) {
    for (int i = 0; i < listOfObjects.size(); i ++) {
        JComponent current = listOfObjects.get(i);
        current.x -= moveX;
        current.y -= moveY;
    }
}

(这只是示例代码,它不会真正起作用。ArrayList在屏幕上显示所有组件并单独移动每个组件。)

或者,如果您只是将它们全部放在框架中(而不是paintComponent在自定义 JPanel 中覆盖),则使用frame.getComponents().

于 2012-12-01T01:02:38.817 回答
0

您可以将外部框架视为“相机”框架,您可以在其中创建一个“世界”框架。然后,您可以使用相反的坐标移动您的世界窗口,以模拟相机的移动。

要实现它,请对内框使用绝对定位(即无布局)。有关绝对定位的更多详细信息,请参阅http://docs.oracle.com/javase/tutorial/uiswing/layout/none.html

于 2012-12-01T01:07:30.213 回答