java - 清除 JPanel

标签 java swing

我正在制作一个程序,其中有一个正方形,当按下一个键时它会改变它的 x 和 y 位置。广场移动,但旧广场仍然存在。在重新绘制面板之前,如何删除/清除面板中的所有内容?调用 removeAll 无效。

最佳答案

大概您的代码包含自定义 paintComponent() 逻辑。要观察的关键是当您覆盖paintComponent() 时您的面板看起来像什么?一个空的(或清除的)面板:

因此,解决方案是在执行您的自定义 paintComponent() 逻辑之前调用面板上父类型的 paintComponent() 方法:

public class CustomPanel extends JPanel {
  @Override
  public void paintComponent(Graphics g) {
    super.paintComponent(g); // first draw a clear/empty panel
    // then draw using your custom logic.
  }
}

关于java - 清除 JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7408034/

相关文章:

java - 搜索 JTree

java - 如何从数组创建多个 Java 对象实例?

java - 链表和 jFrames

java - 将 JTable 编辑保存到数组

java - setter 似乎无法在主方法中工作

java - 如何决定添加到 JPanel 的组件的顺序

java - Maven 命令行中的 Java Build Path 模拟是什么?

java - 剩余时间最短优先 : Java Multithreading

java - 有什么理由不为 JPA 中的 @Id 字段生成 setter 和 getter 吗?

java - 单独类中的 MouseListener 不起作用