gpt4 book ai didi

java - 撤消 arrayList 中的更改

转载 作者:行者123 更新时间:2023-11-29 09:14:56 26 4
gpt4 key购买 nike

我有一个名为“lines”的线对象 ArrayList。我制作了自己的线条类来绘制带有一些约束的线条。它涉及在面板中选择两个点,然后绘制一条连接这两点的线。每次创建一条线时,它都会添加到“线”中。线条绘制在面板中。

我的面板中的绘画功能如下所示:

   public void paintComponent(Graphics g){      

super.paintComponent(g);

for(final Line r:lines){

r.paint((Graphics2D)g);

}
}

每次在面板上点击两点,都会创建一条新线。

class Board extends JPanel{

public void placeLine(){
Point p1,p2;
JLabel l1,l2;
...
lines.add(new Line(p1,p2,l1,l2));
this.repaint();
}
public void deleteLine(Line l){
lines.remove(l);
}
}

我想在此创建一个 UndoAbleEdit,每次我给出撤消时,撤消方法必须恢复到最后一个操作(即创建一行或删除一行)。我已经尝试撤消 JTextArea 中的事件,但我无法弄清楚如何为 ArrayLists 中的事件更改构建自定义撤消。提出一个这样做的例子。

我真的很抱歉没有将它作为 SSCCE 发布。这是一个巨大的项目,几乎不可能创建一个 SSCCE。

最佳答案

我建议您阅读 Memento 模式 ( http://en.wikipedia.org/wiki/Memento_pattern ),然后在网上搜索一些使用此模式的代码示例。

关于java - 撤消 arrayList 中的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10070345/

26 4 0