我是 Java Swing 新手,正在开发一个简单的应用程序,该应用程序在窗口中显示棋盘游戏和可移动棋子。
现在,我有一个足够漂亮的界面:应用程序构建在派生自 JFrame
的特殊 Window
类上,并带有 paint
重写方法以使用 drawImage
显示棋盘和棋子(迭代棋子以收集棋子的位置信息)
但是,当我尝试向整个游戏窗口添加一些按钮和文本显示区域时,出现了问题。在明确单击它们之前,它们都不会被显示。经过一些研究,我发现在这种情况下覆盖油漆会使事情变得困惑;显然,您可以使用 paint
或使用按钮等,但两者都不是真正/容易的。
最佳答案
听起来您没有从 paint
方法中调用 super.paint(g)
。实际上,您不应该在像 JFrame 这样的顶级容器中拥有自定义绘制功能。
理想情况下,您应该使用该替代方法并将其移至新的基于 JComponent
的类。这里你需要重写paintComponent
并调用super.paintComponent(g)
。如果您需要向新组件添加子组件,那么 JPanel
无疑是一个很好的容器。
关于Java Swing - 创建带有按钮和动态游戏板的窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15512450/