gpt4 book ai didi

java - 无法使 repaint() 工作

转载 作者:行者123 更新时间:2023-11-30 05:52:00 24 4
gpt4 key购买 nike

我的类(class)看起来像这样。

import java.awt.*;
import javax.swing.*;

public class Painter extends JPanel {
int x=200;
int y=200;
int newX;
int newY;

Painter(){
setPreferredSize(new Dimension(400,400));
}

public void moveSquare(int newX, int newY){
if(newY != y|| newX != x){
repaint(x,y, 10, 10);
y = newY;
x = newX;
repaint(x,y, 10, 10);
}
}

public void paintComponent(Graphics g){
super.paintComponent(g);
g.setColor(Color.BLACK);
g.fillRect(x, y, 10, 10);
}
}

这些方法是从另一个类调用的。 xy 的值确实改变了它们应有的方式。然而广场没有移动。我在这里做错了什么吗?

编辑 是的,我称呼为“ super ”。只是我复制和编辑这里的代码时不小心删除了它。现在重新编辑它。

最佳答案

您需要调用 super.paintComponent(g) 而不是 paintComponent(g)

public void paintComponent(Graphics g) 

否则你会无限循环。

关于java - 无法使 repaint() 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12150637/

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