我想知道如何在java中的Frame内移动相机。前任:
frame.moveInsideFrame(pointX,pointY).
您将不得不移动框架中的所有内容。例如:
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()
.
您可以将外部框架视为“相机”框架,您可以在其中创建一个“世界”框架。然后,您可以使用相反的坐标移动您的世界窗口,以模拟相机的移动。
要实现它,请对内框使用绝对定位(即无布局)。有关绝对定位的更多详细信息,请参阅http://docs.oracle.com/javase/tutorial/uiswing/layout/none.html。