0

我是 Java Swing 的新手,正在开发一个简单的应用程序,该应用程序在窗口中显示棋盘游戏和可移动的棋子。

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

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

作为一种替代方法,我遇到了一个教程,该教程展示了如何将图像绘制到 JPanel 上,我想我可以在板/部件上使用它,然后在布置东西时像任何其他按钮或小部件一样对待(?)之前我沿着任何死胡同走(似乎是一个愚蠢的问题,但相信我......),我想问:这是一个好方法吗?或者,还有更好的方法?

4

1 回答 1

2

听起来您没有super.paint(g)从您的paint方法中调用。真的,您不应该在像JFrame.

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

于 2013-03-19T23:31:25.223 回答