2011-07-27 47 views
1

我正在研究Java程序,其中JTree使用DefaultTreeCellEditor編輯其節點。 EditorComponent是帶有JTextField和兩個JButton的JPanel。我的問題是,只需點擊Abort-Button應該離開Editmode,但每次EditorComponent失去焦點時,Editmode也會被保留。那麼,如果EditorComponent失去焦點,如何防止DefaultTreeCellEditor離開它的Editmode?如何防止DefaultTreeCellEditor離開Editmode?

回答

1

歡迎!

Afaik DefaultTreeCellEditor有一個名爲stopCellEditing()以及DefaultCellEditor的方法。每次離開編輯模式之前都會調用此方法。因此,通過重寫此方法,您可以集成自己的邏輯。例如,如果按鈕xy被按下,或者當前值是正確的等等,則返回true,否則您只返回false並讓其保持編輯模式。

+0

非常感謝ymene。您的答案是向正確方向邁出的第一步,但您還必須調用setInvokesStopCellEditing(true);.否則,stopCellEditing() - Methode永遠不會被調用。以下指向Bug註釋的鏈接顯示瞭如何使用stopCellEditing()的完整示例。 http://developer.java.sun.com/developer/bugParade/bugs/4436145.html 問候 CrasyHorse – user865294

+0

很高興我能爲你指明正確的方向。迄今爲止,從未使用TreeTables。只是猜到它與普通桌子相似。所以我會記住這些信息,謝謝你的更新! – crusam