当前位置: 首页 > 知识库问答 >
问题:

强制完全重绘Jpanel Java2D

江恩
2023-03-14

我的问题是,我需要制作一个不断更新的GUI,因为我得到的值可以从数据库中更改,并且我在图形区域中遇到了一些问题。

我使用Graphics2D中的Drawline和Drawstring打印数据库中的值,这些字符串和线条移动并更改值,所以我需要调用repaint();使用计时器使它们出现在jpanel中,问题是repaint();不是在绘制之前移除背景中的旧绘画,而是当我完全调整所有更新的大小时。

我知道一种清除背景色的方法,但是背景色也会消失。那么,有没有一种方法可以更新jpanel,删除旧画,并保留死气沉沉的背景色?

谢谢。

共有1个答案

卜方伟
2023-03-14

从图像的外观来看,您似乎只是忘记在油漆组件方法中调用super.paintComponent。它所做的是为您重新绘制背景,因此不会留下以前的油漆工件。

@Override
protected voud paintComponent(Graphics g) {
    super.paintComponent(g);
}

注意:为了便于将来参考,虽然这些图片给了我们一个很好的图片,但最好在发布这些图片的同时附上一个最小、完整且可验证的示例,因此我们不必猜测(是否受过教育)

 类似资料:
  • 问题内容: 我创建了一个自定义视图(我们称之为),该视图基本上只是使用画布在其自身上绘制一些文本。使用全局变量设置要绘制的文本。 在程序执行过程中的某个时候,我想更改全局变量,并重新绘制自身以更新文本。我尝试过然后,但这无济于事。我怀疑既然内的任何内容都没有改变,它认为没有理由打电话给我。是否有任何方法可以强制视图重新绘制自身,即使它认为不需要重新绘制它呢? 问题答案: 如果我在MyView内部有

  • 问题内容: 我在程序开始时,根据数据库中的某些内容,以编程方式在JScrollPane中添加了许多组件(JPanels,JLabels等)。 似乎对于GUI(?)而言,此过程太快了,因此JScrollPane并不总是正确更新,即,即使内部JPanel大于可见区域,滚动条也不可见。 调整窗口大小(JFrame)可以解决此问题,因为我认为Java在调整组件大小时会重新打印它们。 作为测试,我添加了一个

  • 问题内容: 由于存在题外问题,这是一种重写: 我写了一个下拉菜单指令。我将指令两次用作工作流。第一个下拉菜单通过更改操作触发第二个模型的刷新。尽管模型正确更新,但视图未正确更新。在下拉菜单中多次选择项目时,即使角度模型的console.log()正确,第二个下拉菜单也会显示带有新项目的旧项目。 该视图具有无限递归。使用具有ng / template的ID的ng-include可以自我递归: 我最初

  • 问题内容: 我有一些琐碎的JavaScript可以实现样式更改: 在最新版本的FF,Opera和IE上可以正常使用,但在最新版本的Chrome和Safari上无法使用。 它影响了两个后代,它们恰好是兄弟姐妹。第一个同级更新,但第二个不更新。第二个元素的子元素也具有焦点,并包含 < a>标记,该标记在 onclick 属性中包含上述代码。 如果我微调(例如取消选中和选中) 任何 元素的 任何 属性,

  • 由于响应于单击Set Default按钮所做的更改是更改ListView的UserData(),而不更改支持的ObservableList,因此列表不能正确地指示新的默认值。 是否有方法强制ListView重新呈现其ListCells?Android用户在这个问题上提出了成千上万个问题,但JavaFX似乎并不快乐。我可能不得不对支持数组进行“无意义的更改”来强制重绘。 我看到这是为JavaFX2.

  • 基本上,从接收一个单击事件,然后我需要多次更改HTML元素,问题是WebView只显示最后一次更改,这意味着渲染不是立即进行的。 问题:如何制作