当前位置: 首页 > 面试题库 >

Panel.repaint(); 弄乱布局

东郭赞
2023-03-14
问题内容

JPanel初始化

    p = new JPanel() {
        private static final long serialVersionUID = 1L;
        public void paintComponent(Graphics g) {
            if(errors == 1)
                g.drawOval(215, 50, 75, 75);
            else if(errors == 2)
                g.drawOval(200,200,200,200);
        }
    };

调用方法 repaint

static void drawHead() {
    System.out.println("Head");
    errors = 1;
    p.removeAll();
    p.revalidate();
    p.repaint();
}

repaint我的框架看起来像这样之前,http://i.imgur.com/XQlQeul.png

然后看起来像这样,http://i.imgur.com/RnVuUzt.png

我在想我的drawHead()方法有错误,但是我似乎无法解决问题。有人知道发生了什么吗?我想要的结果将是第一张图片,但已head被绘制。


问题答案:

您在super.paintComponent执行任何自定义绘画之前未先致电就中断了绘画链

Graphics如果是共享资源,则在绘制周期中绘制的每个组件都将共享相同的Graphics上下文,这意味着以前为Graphics上下文绘制的所有内容都将保留,除非您清除它。

的工作之一paintComponentGraphics通过使用组件的背景色填充绘画准备上下文



 类似资料:
  • 问题内容: 我正在使用json模块创建一个包含类似条目的文件 但是,在创建的-file文件中,字段顺序错误 这是一个问题,因为-strings的替换现在不正确。 如何强制功能保持给定顺序? 问题答案: 像其他答案正确指出的那样,在Python 3.6之前,字典是 无序的 。 就是说,JSON还应该具有 _无序_映射,因此原则上在JSON中存储有序字典没有多大意义。具体来说,这意味着在读取JSON对

  • 问题内容: 我使用Python编写代码,我非常喜欢Notepad 。但是,当我使用制表符进行缩进时,在Notepad 中看起来很晚,但是当我运行该程序时,出现了缩进错误,并且当我在Emacs中检查代码时,我发现Notepad ++实际上增加了比制表符更多的空格。它显示在屏幕上。怎么了? 问题答案: 没有通用的制表符大小,因此我始终确保用空格替换制表符(因此您知道所看到的就是在其他任何地方都可以看到

  • 问题内容: 我有这个非常奇怪的问题。我有一个包含一些德语字母的网站,当它只是不带php的html时,当我将符号更改为UTF-8时,符号将显示为带有编码的属性,它们不会显示,而不是Ö。当我将html放入php并在Wamp上使用Zenset studio以charset = iso-8859-1编码启动时,得到�而不是Ö(我想补充一下,这个Ö是单选按钮的值) 。当它在一个 标签以正确显示。您能告诉

  • 问题内容: tldr; 自动约束似乎在推送选择时中断,并返回查看自定义单元格 编辑 :我提供了一个github示例项目,展示了发生的错误 https://github.com/Matthew- Kempson/TableViewExample.git 我正在创建一个需要自定义UITableCell的标题标签的应用程序,以允许根据帖子标题的长度来更改行。单元格可以正确加载到视图中,但是如果我按某个单

  • 我想在recyclerview中更改一个特殊项目的颜色 我使用了下面的代码来处理这个请求,但是当项目太多时,我会向下滚动 所有其他项目的背景颜色也会改变 此案例属于正常的回收视图 我该怎么解决这个问题? 我的适配器代码

  • 问题内容: 我制作了许多这样的补丁- 最初我只是将它们像这样直接放在我的轴上- 很好。但是现在我想将它们放入PatchCollection中并将该PatchCollection放到轴上。但是,当我这样做时,我所有的形状都是蓝色。我不明白,只是放入一个收藏集会如何以某种方式改变颜色。有人可以帮我解决需要做哪些工作,以保持输入的色值作为色块的faceColor吗? 新代码是- 问题答案: 默认情况下,