gpt4 book ai didi

java - "paintComponent()"重画

转载 作者:行者123 更新时间:2023-12-01 18:32:43 26 4
gpt4 key购买 nike

我使用paintComponent()方法绘制了一些图形:

public void paintComponent(Graphics g){

super.paintComponent(g);
g.setColor(Color.BLUE);

g.drawRect(50, 50, 50, 50);
g.drawOval(60, 60, 60, 60);

//repaint();
//g.drawOval(10, 10, 10, 10); - nothing effect
}

但现在我想删除所有这些图形并绘制一些新图形。我不知道我该怎么做?也许我必须使用 repaint() 方法但使用错误?

最佳答案

无论您在 paintComponent 方法中编写什么内容,每次调用该方法时都会被绘制。根据到目前为止的描述,实现您想要实现的目标的通常方法是确定是否应该绘制某些内容:

class TheClass extends JComponent
{
private boolean paintTheFirstThing = true;

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

if (paintTheFirstThing)
{
g.setColor(Color.BLUE);
g.drawRect(50, 50, 50, 50);
g.drawOval(60, 60, 60, 60);
}
else
{
g.drawOval(10, 10, 10, 10)
}
}

void setPaintTheFirstThing(boolean p)
{
this.paintTheFirstThing = p;
repaint();
}
}

(这只是一个草图,展示了基本的想法。当然,当你想画很多不同的东西时,你不会为它们创建很多 boolean 标志。关键点是在您的paintComponent方法中,您必须描述在某个时间点应该绘制什么)

关于java - "paintComponent()"重画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23397582/

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