首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >swing Canvas图形何时初始化?

swing Canvas图形何时初始化?
EN

Stack Overflow用户
提问于 2016-10-26 21:32:25
回答 1查看 48关注 0票数 0

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

我在代码中调用了graphics.fillRect,但canvas可能会在0.1s之后重置。我的代码如下:

代码语言:javascript
复制
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中看到一个原始的画布。我试过Thread.sleep(1000);,然后我可以看到一个黑色的背景。有没有线程可以重置我的画布?

EN

回答 1

Stack Overflow用户

发布于 2016-10-26 21:35:51

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40263698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档