Java

JTree

Swing のその他の変更

JTree の toggleClickCount 新規プロパティ

JTree は、ノードの展開/折りたたみが実行されるマウスクリックの回数を設定するためのプロパティを提供するようになりました。以下を参照してください。

JTree の新規プロパティ -AnchorSelectionPath、LeadSelectionPath

TreeSelectionModel は、選択されたパスのセットを管理します。多くの UI もリードパス、およびアンカーパスという概念を提供します。アンカーパスは、選択範囲を広げるジェスチャーのために使用されます。 リードパスとは、通常選択範囲へ最後に追加されるパスです。リードパスが常に選択されることがないよう、リードパスを独自に操作することもできます。制御修飾子が Java Look & Feel (別名 Metal) に対して実行する場合と同様に、Motif はこれを実行します。これまでは、開発者がアンカー/リードの実体を知ることができないよう、この機能のサポートが追加されたことは非公開でした。新規 API ではこれを公開し、開発者がリード/アンカーの取得、およびプログラムでの変更を行えるようにしました。メソッドを公開することにより、開発者が適切と考える方法で動作を自由にオーバーライドさせることができるようにもなりました。

以下を参照してください。

protected フィールドとして公開された DefaultTreeCellRenderer.hasFocus

DefaultTreeCellRenderer は、getTreeCellRendererComponent メソッドを介して渡されるほぼすべての引数を、protected instance 変数として公開します。これにより、ペイントをオーバーライドするのがサブクラスだけになり、かつ getTreeCellRendererComponent を使用せずにすべての引数を追跡できるように、ペイント操作を変更することが容易になります。hasFocus 引数 (最後の引数) は private でした。hasFocus インスタンス変数は、private から protected になりました。

javax.swing.tree.DefaultTreeCellRenderer では、次のとおりです。

追加された TreeSelectionEvent.isAddedPath()

TreeSelectionEvent は、TreeSelectionModel の変更方法のデルタをカプセル化します。つまり、選択に追加されたすべてのパス、および削除されたパスを含みます。特定のパスが選択モデルにとって新規かどうかを判定するために、isAddedPath(TreePath) メソッドが提供されています。valueChanged(TreeSelectionEvent) リスナーメソッドは、通常次の形式をとります。
  
TreePath[] paths = event.getPaths();
for (int counter = paths.length - 1; counter >= 0; counter--) {
if (event.isAddedPath(paths[counter])) ...
}
    

TreeSelectionEvent.isAddedPath(TreePath) は、TreePath で繰り返し処理を実行して、内部 TreePath 配列で TreePath の添え字を判定し、その後それを boolean 型にマップして新規パスかどうかを判定します。TreePath 配列で isAddedPath(TreePath) の繰り返し処理が行われないようにするために、isAddedPath(int) が追加されました。

javax.swing.event.TreeSelectionEvent では、次のとおりです。

JTree の expandsSelectedPaths 新規プロパティおよび removeDescendantSelectedPaths 新規メソッド

選択が JTree 内でプログラムによって変更される場合、選択された項目が可視になります (可視とはすべての親項目が展開されていることを意味する)。ある種のアプリケーションでは、これは望ましい動作ではありません。特定の型のノードすべてをその可視性に関係なく選択する必要があるためです。この動作が JTree と BasicTreeUI を越えて実装されているため、この動作のオーバーライドが難しくなっています。public メソッドである getExpandsSelectedPaths および setExpandsSelectedPaths が JTree に追加されています。false に設定されている場合、選択が変更されるとノードは可視になりません。 デフォルトは true です。

protected メソッドの removeDescendantSelectedPaths も追加されました。子孫である選択されたパスを削除するためにノードの削除/折りたたみが実行される場合はいつでも、このメソッドが呼び出されます。これにより、ノードの削除/折りたたみの実行時に選択が変更されないようにする場合に、サブクラスがオーバーライドする場が提供されます。

以下を参照してください。

使用されなくなった DefaultTreeSelectionModel.insureUniqueness

DefaultTreeSelectionModel には、protected メソッド insureUniqueness があります。これは、TreePath の配列を使用して重複が存在しないことを確認します。実装の変更により、Hashtable が使用され、このメソッドはもはや必要なくなり、廃止としてマークされるようになりました。実装は空になりましたが、以前と同様に呼び出すことはできます。

変更された javax.swing.tree.DefaultTreeSelectionModel の API および仕様を次に示します。

    /**
* This method is obsolete and its implementation is now a noop.It's
* still called by setSelectionPaths and addSelectionPaths, but only
* for backwards compatibility.
     */
protected void insureUniqueness()
    

Copyright © 1995-98 Sun Microsystems, Inc. All Rights Reserved.

コメントの送付先: swing-feedback@java.sun.com.これは購読リストではありません。
Sun
Java ソフトウェア