gpt4 book ai didi

Java2D Artifact ?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:52:22 24 4
gpt4 key购买 nike

我正在为我正在编写的游戏使用 Java2D,并且在我开始将它与其他 swing 组件集成之前使用它没有任何问题。我的问题是,当我添加到 JFrame 的第一个组件不是我正在绘制的 Canvas 时,当我将鼠标悬停在文本 Pane 的滚动条上时,我会得到一个奇怪的工件。每次我执行应用程序时都会发生。当我先有 Canvas 时,没有问题。

出于某种原因,这似乎仅在使用默认 Java2D 管道(恰好是 sun.java2d.d3d=true)时在 Windows 上发生,并且出现工件。当我设置 sun.java2d.opengl=true 或 sun.java2d.noddraw=false AND sun.java2d.d3d=false 时,它​​不会发生。

我猜这是 Direct3D Java2D 管道的某种错误?我可以很容易地解决它,但很想知道是否有其他人遇到过这样的问题?我正在运行最新的 JDK7u7,但它也发生在以前的版本中。我应该注意,如果我最小化窗口并恢复它,工件就会消失并且在我重新启动应用程序之前永远不会返回。

与 Artifact : bad

没有工件(首先添加 Canvas 而不是 JLabel 图像之后): good

如果有人对此有任何进一步的信息,我将不胜感激。谢谢!

最佳答案

这是一个因未能兑现 opacity 而广为人知的人工制品属性(property)。因为“Swing 程序 should override paintComponent() 而不是重写 paint()”,请确保首先调用 super.paintComponent()你的实现。有相关例子herehere .

附录:另见 Mixing Heavyweight and Lightweight Components .

关于Java2D Artifact ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12851150/

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