gpt4 book ai didi

java - 为什么附加 JPanel 更好?

转载 作者:搜寻专家 更新时间:2023-10-31 08:09:17 25 4
gpt4 key购买 nike

我刚刚开始编码视频游戏,我听说在 JPanel 上完成所有绘图并将该面板附加到 JFrame 上比简单地在 JFrame 上绘图要好。我只是想知道为什么这样更好?

最佳答案

由于各种原因,它更好,包括:

  • 在大多数 Swing 组件中,自定义绘画是通过覆盖 paintComponent(Graphics) 方法来实现的。顶级 Swing 容器(例如 JFrameJAppletJWindow)只有 paint(Graphics)。由于绘制的通用方法,回答的人经常忘记通用组件和顶级组件之间的区别,因此提出愚蠢的建议。 ;)
  • JComponent 可以添加到 JFrameJAppletJDialogJPanelJInternalFrame 中的布局约束,或...就在您认为您的 GUI 已完成时,客户会说“嘿,这不是吗?很高兴加入一个工具栏并将其作为一个小程序提供?” JComponent 方法很容易适应这种情况。
  • 如 Richante 所解释的(完整的代码!),计算绘制自定义组件所需的坐标更容易,如果它有首选大小,则将 JFrame 的大小调整为是“完全正确的大小”以包含 GUI(使用 pack())。当还添加其他组件时尤其如此。

现在,对所提供的建议有两个小分歧。

如果整个组件都是自定义绘制的,最好将 BufferedImage 简单地放在 ImageIcon/JLabel 组合中。这是 painting to an image 的示例.
需要更新时:

  1. Graphics 调用 getGraphics() 或为 Graphics2D 调用 createGraphics()
  2. 将自定义绘画绘制到该图形实例
  3. 处理图形实例
  4. 在标签上调用repaint()

关于java - 为什么附加 JPanel 更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10073719/

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