2011-07-27 44 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