gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 13:17:39 29 4
gpt4 key购买 nike

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

chessGUIJFramewhitePawnPiece 是我想要做的 whitePawnIcon.paintIcon (...,.. .,xPos, yPos)

嗯,首先我不太理解前两个参数,但从我读到的来看,第一个参数可以是 null,第二个参数应该是 JFrame

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

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

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

最佳答案

这有点令人困惑,但是......

Icon 声明 paintIcon 采用四个参数...

  • 组件
  • 图形
  • int x
  • int y

这是对某个组件的引用,大概是与 Graphics 上下文关联的组件,因为 Component 可能会被用作 >ImageObsever 用于在需要更新时监 View 标的更改,并可能提供其他有用的信息

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

现在,话虽如此,为了成功绘制图标,您将需要某种 Graphics 上下文的引用。这可以通过扩展组件(如 JPanel)并重写其 PaintComponent 方法来获得。这将使您能够访问 Graphics 上下文,该上下文可用于在此绘制周期中绘制内容。切勿维护对并非您自己创建的Graphics 上下文的引用。

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

看看Performing Custom Painting , Painting in AWT and Swing2D Graphics

话虽如此,我认为您会比 Icon 更简单地使用 BufferedImage(或 Image)。看看Reading/Loading an Image了解更多详情

关于你的第二个问题。不,您不会遇到相同的问题,您将遇到全新的问题

关于Java Swing - 在与 JFrame 不同的类中使用paintIcon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22340601/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com