gpt4 book ai didi

java - swing Canvas 图形何时初始化?

转载 作者:行者123 更新时间:2023-12-01 09:19:28 29 4
gpt4 key购买 nike

我现在正在学习 Java Swing。当我尝试在 JFrame 中使用 Canvas 时,我遇到了一个困惑的情况。

我在代码中调用graphics.fillRect,但 Canvas 将在大约0.1秒后重置。我的代码在这里:

public static <T> void main(String[] args) throws Exception {
JFrame window = new JFrame("天码营贪吃蛇游戏");
Canvas canvas = new Canvas();
canvas.setSize(500, 500);
canvas.setVisible(true);
window.add(canvas, BorderLayout.CENTER);
window.setSize(500, 500);
window.setResizable(false);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setVisible(true);
Graphics graphics = canvas.getGraphics();
graphics.setColor(Color.black);
graphics.fillRect(0, 0, 500, 500);
}

因此,当我运行代码时,我将在 Windows 中看到原始 Canvas 。我尝试过Thread.sleep(1000);,然后我可以看到黑色背景。有没有线程会重置我的 Canvas ?

最佳答案

这是因为您的 Canvas 会被一遍又一遍地重新绘制。您需要创建一个派生自 Canvas-Class 的类并覆盖其 Paint-Method(可能需要在 Javadoc 中查找正确的名称)。这样,每次要求它重新绘制自身时,它都会重新绘制。

关于java - swing Canvas 图形何时初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40263698/

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