JTree |
Swing のその他の変更 |
JTree の toggleClickCount 新規プロパティ
JTree は、ノードの展開/折りたたみが実行されるマウスクリックの回数を設定するためのプロパティを提供するようになりました。以下を参照してください。
- public static final String TOGGLE_CLICK_COUNT_PROPERTY
- protected int toggleClickCount
- public void setToggleClickCount(int clickCount)
- public int getToggleClickCount()
JTree の新規プロパティ:AnchorSelectionPath、LeadSelectionPath
TreeSelectionModel は、選択されたパスのセットを管理します。多くの UI もリードパス、およびアンカーパスという概念を提供します。アンカーパスは、選択範囲を広げるために使用されます。 リードパスとは、通常選択範囲へ最後に追加されるパスです。リードパスが常に選択されることがないよう、リードパスを独自に操作することもできます。制御修飾子が Java Look & Feel (別名 Metal) に対して実行する場合と同様に、Motif はこれを実行します。これまでは、開発者がアンカー/リードの実体を知ることができないよう、この機能のサポートが追加されたことは非公開でした。新規 API ではこれを公開し、開発者がリード/アンカーの取得、およびプログラムでの変更を行えるようにしました。メソッドを公開することにより、開発者が適切と考える方法で動作を自由にオーバーライドさせることができるようにもなりました。
以下を参照してください。
- public static final String LEAD_SELECTION_PATH_PROPERTY
- public static final String ANCHOR_SELECTION_PATH_PROPERTY
- public void setLeadSelectionPath(TreePath newPath)
- public void setAnchorSelectionPath(TreePath newPath)
- public TreePath getLeadSelectionPath()
- public TreePath getAnchorSelectionPath()
protected フィールドとして公開された DefaultTreeCellRenderer.hasFocus
DefaultTreeCellRenderer は、getTreeCellRendererComponent メソッドを介して渡されるほぼすべての引数を、protected instance 変数として公開します。これにより、ペイントをオーバーライドするのがサブクラスだけになり、かつ getTreeCellRendererComponent を使用せずにすべての引数を追跡できるように、ペイント操作を変更することが容易になります。hasFocus 引数 (最後の引数) は private でした。hasFocus インスタンス変数は、private から protected になりました。
javax.swing.tree.DefaultTreeCellRenderer
では、次のとおりです。追加された TreeSelectionEvent.isAddedPath() 追加された 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 これはメーリングリストではありません。 |
Java ソフトウェア |