我想知道如何在java中移动Frame内的相机。例如:
frame.moveInsideFrame(pointX,pointY).
答案 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。