私は、「線」と呼ばれる線オブジェクトのArrayListを持っています。私はいくつかの制約があるラインを描くために自分のラインクラスを作った。これは、パネル内の2つの点を選択し、2つの点を結ぶ線が引かれます。線が作成されるたびに、線に追加されます。線はパネルで描画されます。arrayList内の変更を元に戻す
私のパネルでペイント機能は、次のようになります。
public void paintComponent(Graphics g){
super.paintComponent(g);
for(final Line r:lines){
r.paint((Graphics2D)g);
}
}
そして、毎回2つの点がパネル上でクリックされ、新しい行が作成されます。
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
これは助けることができます:http://stackoverflow.com/questions/3583901/how-to-design-undo-redo-in-text-editor –