1

JToggleButtons (特にJCheckBoxes)用の取り消しマネージャーを作成しようとしています。各チェック ボックスには、元に戻すマネージャーに新しい編集を追加するアイテム リスナーがあります。ただし、選択を元に戻そうとすると、setSelected(boolean)メソッドは項目リスナーをトリガーし、元に戻すを別の として追加するUndoableEditため、無期限に元に戻すことができます。この問題に対する私の回避策は次のとおりです。

ItemListener[] ils = button.getItemListeners();
Arrays.stream(ils).forEach(button::removeItemListener);
button.setSelected(wasSelected);
Arrays.stream(ils).forEach(button::addItemListener);

これは機能しますが、少し面倒です。これを行うより良い方法はありますか?

4

0 に答える 0