私が取り組んでいるこのかなり大きなプロジェクト、グラフィックエディタがあり、スイングコンポーネントの操作でいくつかの大きな問題が発生しました。しかし、今ではプログラマーにとって最悪の悪夢があります。これは、たまにしか発生しないバグです。
JTree
要素を追加するとき、または図()で選択されているときに要素を選択するときに、で要素を選択しようとすると、一部の要素JInternalFrame
が展開されません。
私の構造は次のようなものです。プロジェクトと図を含むプロジェクトを含むワークスペースがあります。ダイアグラムは、私が持っているすべての要素、たとえば円、長方形などをフォルダーに保持します(それらが円の場合、それらは円フォルダーに配置されます...)。
もう1つ知っておくべきことは、setSelectedPath/Paths
のメソッドを使用して要素を選択することJTree
です。
私が何をし、何を試したかを理解するのに役立つかもしれないいくつかのこと:
- ノードがルートに到達する方法を知っていることを確認しました。(
getTreeModel.getPathToRoot
良いパスを返します) - 樹木選択モデルと樹木に直接パスを追加してみました
- 木
expandsSelectedPaths
をtrueに設定しました - ツリーを手動で展開すると(後で展開する場合でも)、問題の原因となったタイプの新しい要素を追加するまで、ノードが選択されます。
- これは、5種類の要素を切り替えるときに約1回発生します。問題が発生した要素を追加した後で、他の種類の要素を追加しようとすると、奇妙なことが起こります。
これは非常に複雑な問題だと思いますが、誰かが何をすべきかを知ってくれることを願っています。あなたが私を助けるのを助けるかもしれない何かを尋ねてください。