我有一個名爲'行'的線對象的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