gpt4 book ai didi

JAVA:如何使用paint()方法更新之前绘制的对象?

转载 作者:行者123 更新时间:2023-11-29 06:18:31 26 4
gpt4 key购买 nike

如何使用 paint() 以便在调用 repaint() 时,在绘制新对象时不应删除先前绘制的对象。那就是绘图区域必须只更新而不是重绘。

在我的代码中,当单击多个按钮之一时,会显示一些 aplhabet。我想拥有这样的功能,即当单击其他按钮时,必须存在先前绘制的字母表。Take 就像单击按钮时创建的一串字母表一样。我使用 Java Swing 进行编码。

我的一些代码:

if(source == btnAlpha[i] )  
bollyDraw.repaint(); //bollydraw is an object of a JPanel extended class having implemented the paintComponent(Graphics g) method

在 paint() 方法中:

if (word[i] == key) {
g.drawChars(word, i, 1, x, y);
}

最佳答案

在我从事的一个项目中,我使用了一个列表来存储要作为类成员绘制的对象。然后当用户与我的 UI 交互时,我从这个列表中添加/删除了项目。呈现项目的 JPanel 绘制了此列表中的项目。它有助于将 UI 逻辑与绘制逻辑分开,因为您可以确定在触发事件时而不是在绘制方法(应尽可能干净)中进入绘制列表的内容。然而,这将迫使您在每次绘制调用时重新绘制所有内容。

结合这个 Kim 的 RepaintManager 是限制重绘内容的好方法。它是基于区域的,因此在确定屏幕的哪个区域发生变化时存在一些复杂性。如果您有时间,最好使用类似这样的东西,否则以后可能很难添加此功能。

关于JAVA:如何使用paint()方法更新之前绘制的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4133072/

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