TITLE:JTreeのノード編集をコミット
#navi(../)
#tags(JTree)
RIGHT:Posted by &author(aterai); at 2014-02-24
* JTreeのノード編集をコミット [#n643a931]
`JTree`のノード編集中に割り込みが発生した場合、変更の自動保存を行うかどうかを設定します。

#download
#ref(https://lh6.googleusercontent.com/-KbIRjsEYzEA/Uwny844Zc3I/AAAAAAAACAY/_3w4abiuaIo/s800/InvokesStopCellEditing.png)

** サンプルコード [#c2ececa7]
#code(link){{
tree.setInvokesStopCellEditing(true);
}}

** 解説 [#sef9f0f4]
`JTree`のノード編集に割り込みが発生した場合の動作を変更します。

- `tree.setInvokesStopCellEditing(false);` デフォルト
-- 編集に割り込みが発生したとき、`JTree#cancelCellEditing()`が呼び出され、変更は破棄される
- `tree.setInvokesStopCellEditing(true);`
-- 編集に割り込みが発生したとき、`JTree#stopCellEditing()`が呼び出され、データが保存される

----
ノード編集の割り込みは、その`JTree`内の別のノードがクリックされた場合などに発生します。タブキーなどで`JTree`以外のコンポーネントにフォーカスが移動したり、親`Window`がフォーカスを失っても、割り込みは発生しないため、編集中の状態が維持され、再度`JTree`にフォーカスを戻せば編集を再開することができます。

** 参考リンク [#x38bb578]
- [http://docs.oracle.com/javase/jp/7/api/javax/swing/JTree.html#setInvokesStopCellEditing(boolean) JTree#setInvokesStopCellEditing(boolean) (Java Platform SE 7)]
- [[JTableのセルの編集をコミット>Swing/TerminateEdit]]

** コメント [#i00d486a]
#comment