Java Swing - 创建一个带按钮和动态游戏板的窗口

时间:2013-03-19 23:27:03

标签: java image swing jpanel

我是Java Swing的新手,正在研究一个简单的应用程序,它在窗口中显示棋盘游戏和可移动部件。

现在,我有一个足够好的界面:应用程序构建在一个派生自Window的特殊JFrame类上,覆盖paint方法以显示板和块使用drawImage(迭代碎片以收集位置信息)

但是,当我尝试在整个游戏窗口中添加一些按钮和文本显示区域时,出现了问题。在明确点击它们之前,它们都没有被显示。通过一些研究,我发现在这样的情况下,覆盖油漆会使事情变得混乱;显然,你可以搞砸paint或使用按钮等,但不是真的/容易两者。

作为一种替代方法,我遇到了一个教程,展示了如何将图像绘制到JPanel上,我想我可以在板/片上使用,然后在铺设时将其视为任何其他按钮或小部件( ?)在我走下任何一条死胡同的街道之前(似乎是一个愚蠢的问题,但请相信我......),我想问:这是一个好方法吗?或者,还有更好的方法?

1 个答案:

答案 0 :(得分:2)

听起来您没有在super.paint(g)方法中调用paint。实际上,您不应该在JFrame等顶级容器中使用自定义绘制功能。

理想情况下,您应该使用该替代方法并将其移至基于JComponent的新类。在这里,您需要覆盖paintComponent并呼叫super.paintComponent(g)。如果您需要将子组件添加到新组件,那么肯定JPanel是一个很好的容器。