取り消しボタンが押されたときにjPanelの前の位置にラベルを戻すスイング元戻し機能を実装しようとしています。私はラベルにコンポーネントリスターを追加しましたが、私は現在の場所だけを取得することができ、ラベルの前の場所を取得する方法はわかりません。移動したときにラベルの前の場所を取得する方法
class ComponentEventAdapter implements ComponentListener {
@Override
public void componentHidden(ComponentEvent e) {
//do nothing.
}
@Override
public void componentMoved(ComponentEvent e) {
Point oldP;
Point newP = e.getComponent().getLocation();
undoManager.undoableEditHappened(new UndoableEditEvent(modelPanel, new ComponentAdditionEdit(e.getComponent(),oldP , newP)));
}
@Override
public void componentResized(ComponentEvent e) {
// Do nothing.
}
@Override
public void componentShown(ComponentEvent e) {
undoManager.undoableEditHappened(new UndoableEditEvent(modelPanel, new ComponentAdditionEdit(e.getComponent(),e.getComponent().getLocation())));
}
}
ラベル/コンポーネントの古い場所をoldPに渡すにはどうすればよいですか。
移動が最初にトリガーされる仕組み(MouseListener?ActionListener?) – copeg