Java 调整窗口大小并在其中移动内容

Java 调整窗口大小并在其中移动内容,java,swing,resize,2d-games,Java,Swing,Resize,2d Games,我有一个用java制作的简单游戏。基本上,我的编程能力是相对基本的,我希望能够调整游戏窗口的大小,而不是让图像停留在原来的位置,只是在更大的区域显示白色。有什么简单的方法可以做到这一点吗?根据我对您的问题的理解,您希望将您的游戏“扩展”到边界之外,并将其扩展到窗口的其余部分。(如果这是错误的,那么oops:s) 为了做到这一点,你必须做出一些决定。您可以将整个游戏缩放到帧,也可以仅扩展背景。但是,根据你想朝哪个方向移动,你必须做不同的事情 最终,这个决定完全取决于你 另外,您使用什么创建窗口?要

我有一个用java制作的简单游戏。基本上,我的编程能力是相对基本的,我希望能够调整游戏窗口的大小,而不是让图像停留在原来的位置,只是在更大的区域显示白色。有什么简单的方法可以做到这一点吗?

根据我对您的问题的理解,您希望将您的游戏“扩展”到边界之外,并将其扩展到窗口的其余部分。(如果这是错误的,那么oops:s)

为了做到这一点,你必须做出一些决定。您可以将整个游戏缩放到帧,也可以仅扩展背景。但是,根据你想朝哪个方向移动,你必须做不同的事情

最终,这个决定完全取决于你


另外,您使用什么创建窗口?

要拉伸游戏,请首先将其渲染到
图像上。然后在瞬间拉伸图像的同时绘制图像

Image dbImage; // The backbuffer
graphics.drawImage(dbImage, 0, 0, getWidth(), getHeight());

大多数游戏更喜欢禁用窗口大小调整和我的引擎。

现有的两个答案似乎假设您希望调整游戏空间大小

调整游戏空间大小 一个游戏空间,是一个射击'他们'不一定调整好。例如,当游戏的宽度是原来的两倍时,左/右箭头是否应该将船移动两倍?垂直拉伸窗口是否会增加重力或快照的速度

填充游戏空间 按照我阅读问题的方式,您只希望将游戏空间放在窗口的中心。从中可以看出这一点

确定顶级容器的大小。 许多游戏都会调整大小,以避免第一种方法产生的问题类型,并避免第二种方法周围的“大空白带”。这就像打电话一样简单

要使此技术发挥最佳效果,请执行以下操作:

  • 确保执行游戏渲染的组件具有首选大小集
  • 将其(和所有其他控件)添加到框架中
  • 调用
    frame.pack()
    以确保框架的大小适合显示内容
  • (最后)调用
    frame.setresizeable(false)

  • 您可能还想看一下的答案,以获取一些想法……另外,游戏不处理布局管理器游戏不喜欢布局管理器。默认情况下,它们使用
    BorderLayout
    ,因为如果不显示任何内容,则会自动选择它