0
JTreeに埋め込まれたチェックボックスの状態取得
下記ページを参考にJTreeにチェックボックスを設定しま
した。
http://terai.xrea.jp/Swing/CheckBoxNodeEditor.html
葉ノードの状態(チェックボックスのオン/オフ)を取得し
たいのですが、方法を教えて頂けませんでしょうか。
よろしくお願いします。
0
下記ページを参考にJTreeにチェックボックスを設定しま
した。
http://terai.xrea.jp/Swing/CheckBoxNodeEditor.html
葉ノードの状態(チェックボックスのオン/オフ)を取得し
たいのですが、方法を教えて頂けませんでしょうか。
よろしくお願いします。
0
文面から「各ノード毎にチェックボックスの実体があっ
て、特定のノードのチェックボックスはどうやって参照
するのだろう」ということを疑問に思っておられると推
測して回答します。
各ノードそれぞれにチェックボックスがあるわけではあ
りません。TreeCellRenderer/TreeCellEditorが(全て
のノードの描画・編集に共通に使いまわす)GUIコンポ
ーネントを一組だけ保持していて、特定のノードの描
画・編集時だけ一時的にGUIコンポーネントをそのノー
ド用に使っている・・・という具合になっています。
そんな訳で下記のように考えます。
1.チェックボックスで表示したい情報は設計者が「ノー
ド」に実装する。この状態を参照・設定したいときは
「ノード」自体に対して行います。
2.描画・編集用にはTreeCellRenderer/TreeCellEditor
の派生を定義し1.で述べた特別な情報の表示・編集部分
を実装し、これらのインスタンスをJTableに設定しま
す。
0
ご回答ありがとうございます。
以下のように記述することで、取得できました。
TreeModel model=jtree1.getModel();
DefaultMutableTreeNode root=
(DefaultMutableTreeNode)model.getRoot();
Enumeration e = root.breadthFirstEnumeration();
// ルートノードから配下をすべて検索
while(e.hasMoreElements()) {
DefaultMutableTreeNode node=
(DefaultMutableTreeNode)e.nextElement();
CheckBoxNode TARGET_CHECK_BOX=(CheckBoxNode)
node.getUserObject();
if(node.isLeaf()){
if(TARGET_CHECK_BOX.status.toString().equals("SELE
CTED")){
// チェックボックスがオンの葉
//System.out.println(node);
}
}
}
ありがとうございました。
質問から6ヶ月以上経過しているので、回答を書き込むことはできません。