Java Swing -在不同的JFrame类中使用paintIcon



我正在做一个小的国际象棋游戏,它有类whitePawnPiece扩展whitePiece扩展chessMain扩展chessGUI

chessGUIJFrame, whitePawnPiece是我想做whitePawnIcon.paintIcon (...,...,xPos, yPos)的地方。

好吧,首先我不太了解前两个参数,但从我读到的第一个可以是null,第二个应该是JFrame

我的问题是:我如何使用第二个参数?我使用NetBeans,它接受第一个参数为null,但第二个,无论我放什么,它都会给出一个错误"找不到符号"或其他东西。

PS:我正在使用NetBeans IDE做GUI,但在阅读代码后,我认为自己编程GUI更容易,更好,所以这是我第一次尝试编程GUI本身:)

还有一个额外的问题:当我使用NetBeans IDE时,我在覆盖图像时遇到了一些问题,直到我将布局设置为绝对(我使用标签来处理图标)。我现在会不会有同样的问题?我应该使用默认布局还是有一个更好的国际象棋程序,有很多覆盖(棋盘,棋子,选择/可能的移动标记)?

这有点令人困惑,但是…

Icon声明paintIcon接受四个参数…

  • Component
  • Graphics
  • int x
  • int y

是对某个组件的引用,可能是与Graphics上下文相关联的组件,因为Component可能会被用作ImageObsever来监视图标在需要更新时的变化,并可能提供其他有用的信息

Graphics上下文是要绘制图像的实际位置(图形输出)。

现在,说了这么多,为了成功地绘制图标,你需要一些Graphics上下文的参考。这可以通过扩展组件(如JPanel),覆盖它的paintComponent方法来获得。这将使您能够访问Graphics上下文,该上下文可用于在此油漆循环中绘制内容。永远不要维护对非您自己创建的Graphics上下文的引用。

然后调用paintIcon,传递对组件和Graphics上下文的引用。

看一下执行自定义绘画,在AWT和Swing中绘画和2D图形

说了这么多,我认为你会使用BufferedImage s(或Image)比Icon更简单。阅读/加载图片了解更多细节

关于你的第二个问题。不,你不会有同样的问题,你会有全新的问题

相关内容

  • 没有找到相关文章

最新更新