説明 (文字列) と優先値 (int) を持つカスタム オブジェクトがあります。このタイプの異なるオブジェクト間には階層関係があるため、これらの値を JTree に表示します。優先順位は表示目的では重要ではないため、JTree ノードの説明のみを表示します。
JTree ノード (リーフまたはノード) を編集するときに JDialog ポップアップを表示したいと考えています。たとえば、F2 を押します。このダイアログは、説明と優先度の両方を編集するために使用されます。
JTree がデフォルトでテキストをテキスト フィールドとして編集するのを防ぎ、代わりにカスタム ダイアログを呼び出すにはどうすればよいですか?
私が推測する簡単な方法は、DefaultTreeCellEditor クラスをサブクラス化し、isCellEditable メソッドをオーバーライドすることです。次に、そこで JDialog を呼び出し (カスタム DefaultTreeCellEditor をインスタンス化するときに関連する初期化要素を取得できます)、単純に false を返してデフォルトの編集を防止しますが、これは十分に洗練されているようには思えません。