我有一个名为'行'的线对象的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中,每次我给撤消,撤消方法必须恢复到上次动作(i.e.creating线或删除线)。我已经尝试撤消JTextArea中的事件,但我无法弄清楚如何为ArrayLists中的事件更改构建自定义撤消。建议做一个例子。
我真的很抱歉没有将它作为SSCCE发布。这是一个巨大的项目,创建SSCCE几乎是不可能的。
你的deleteLine方法的工作? – guness 2012-04-09 08:20:18
这可以帮助:http://stackoverflow.com/questions/3583901/how-to-design-undo-redo-in-text-editor – 2012-04-09 08:40:33