我有一个名为“lines”的线对象数组列表。我制作了自己的线条类来绘制带有一些约束的线条。它涉及在面板中选择两个点并绘制一条连接这两个点的线。每次创建一行时,它都会添加到“行”中。这些线条是在面板中绘制的。
我的面板中的绘制功能如下所示:
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 中的事件进行撤消,但我不知道如何为 ArrayList 中的事件更改构建自定义撤消。建议一个执行此操作的示例。
我真的很抱歉没有将其作为 SSCCE 发布。这是一个巨大的项目,创建 SSCCE 几乎是不可能的。
我建议您阅读有关 Memento 模式的内容(http://en.wikipedia.org/wiki/Memento_pattern http://en.wikipedia.org/wiki/Memento_pattern),然后在网络上搜索一些使用此模式的代码示例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)