java - 我怎样才能 "erase"我在 Java Graphics2D Canvas 上绘制的东西而不删除它后面的东西?

标签 java swing awt graphics2d jslider

我正在编写一个程序,在坐标系上绘制特定的图形(基于通过 JSlider 给出的参数)。 我遇到的问题是我的坐标系也绘制在该 Canvas 上,如果我使用“clearRect”方法,它会删除我想要删除的图形以在绘制新图形时JSlider 更新以及坐标系。 有没有办法“锁定”坐标系,使其不会被删除或类似的情况?

最佳答案

不要直接在 Canvas 上绘制。创建对象列表,例如坐标系和对象。您可以操作列表(添加或删除对象)和 repaint当事情发生变化时 Canvas 。

List 中的每个对象都可以实现接口(interface) Drawable用一个方法说draw()。所以列表将是 List<Drawable> 。在 Canvas 上的paint()遍历所有对象并调用draw()。

关于java - 我怎样才能 "erase"我在 Java Graphics2D Canvas 上绘制的东西而不删除它后面的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55406987/

相关文章:

java - 什么应该符合 "long running task"的条件才能在 SwingWorker 线程中执行?

java - 如何在 JList 上添加滚动条? [JAVA]

java - 移动具有渐变填充的矩形

Java正则表达式,用于在任何位置包含至少一个字母数字字符的字符串

java - Wicket 与主要方法(Wicket 如何工作?)

java - 我如何在 IntelliJ 中显示通知?

java - jetty 抛出 NoClassDefFoundError : org/eclipse/jetty/util/FutureCallback on shutdown

java - Swing 形式被卡住

java - 如何在java中的点击事件中获取按钮名称

java - Desktop.getDesktop().browse 挂起