「ライン」と呼ばれるライン オブジェクトの ArrayList があります。いくつかの制約のある線を描画するために、独自の線クラスを作成しました。パネル内の 2 点を選択すると、2 点を結ぶ線が描かれます。行が作成されるたびに、「行」に追加されます。線はパネルに描かれています。
私のパネルのペイント機能は次のようになります。
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 を作成したいのですが、元に戻すたびに、元に戻すメソッドは最後のアクション (行の作成または行の削除) に戻る必要があります。JTextArea のイベントの取り消しを試みましたが、ArrayLists のイベント変更のカスタム取り消しを作成する方法がわかりませんでした。これを行うための例を提案します。
そして、SSCCE として投稿できなくて本当に申し訳ありません。これは巨大なプロジェクトであり、SSCCE を作成することはほとんど不可能です。