Swing 游戏应该只有绘图组件吗?

Should Swing games only have a drawing component?

我一直在使用 JPanel 并覆盖 paintComponent() 以便在 Swing 游戏中执行我的绘图。我现在正在尝试添加一个物品栏,其中将包含玩家可以拖动的不同物品并移动到屏幕上 "backpack" 中的不同位置。 Swing 游戏应该只在单个 JPanel 或其他组件上绘制(例如:在鼠标位置绘制项目图像)还是可以添加图标为项目图片的 JButtons?

游戏应该只有一个绘图组件,还是可以包含更多组件?

原则上,您可以拥有任意数量的组件。 Swing – 与任何其他足够精细的库一样,例如用于 Java 的 SWT 或用于 C++ 的 Qt 和 WxWidgets – 足够智能,可以只在屏幕上绘制真正需要的东西。

只要您不运行陷入性能问题,就没有问题。如果这确实发生了,您可能首先要查看您自己的 paintComponent 实现,因为这是您最有可能失去效率的地方。