在java中将相机移动到Frame中

时间:2012-12-01 00:53:23

标签: java camera frame

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

frame.moveInsideFrame(pointX,pointY).

2 个答案:

答案 0 :(得分: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并单独移动每个组件。)

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

答案 1 :(得分:0)

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

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