0

これが私のJTree

javax.swing.tree.DefaultMutableTreeNode treeNode1 = new javax.swing.tree.DefaultMutableTreeNode(".Net Framework");
javax.swing.tree.DefaultMutableTreeNode treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("Install");
javax.swing.tree.DefaultMutableTreeNode treeNode3 = new javax.swing.tree.DefaultMutableTreeNode("V1");
treeNode2.add(treeNode3);

treeNode3 = new javax.swing.tree.DefaultMutableTreeNode("V2");
treeNode2.add(treeNode3);

treeNode3 = new javax.swing.tree.DefaultMutableTreeNode("V3");
treeNode2.add(treeNode3);

treeNode3 = new javax.swing.tree.DefaultMutableTreeNode("V4");
treeNode2.add(treeNode3);
treeNode1.add(treeNode2);

treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("Repair");
treeNode3 = new javax.swing.tree.DefaultMutableTreeNode("V1");
treeNode2.add(treeNode3);

treeNode3 = new javax.swing.tree.DefaultMutableTreeNode("V2");
treeNode2.add(treeNode3);

treeNode3 = new javax.swing.tree.DefaultMutableTreeNode("V3");
treeNode2.add(treeNode3);

treeNode3 = new javax.swing.tree.DefaultMutableTreeNode("V4");
treeNode2.add(treeNode3);
treeNode1.add(treeNode2);

treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("Removal");
treeNode3 = new javax.swing.tree.DefaultMutableTreeNode("Remove All");
treeNode2.add(treeNode3);
treeNode1.add(treeNode2);

jTree2.setModel(new javax.swing.tree.DefaultTreeModel(treeNode1));
jScrollPane5.setViewportView(jTree2);

これがほとんど機能するコードです

DefaultMutableTreeNode node = (DefaultMutableTreeNode) jTree2.getLastSelectedPathComponent();

if (node == null) {
      //Nothing is selected.     
    return;
}

if (node.isLeaf()) {
    System.out.println(node);
} 

インストール ノードのリーフ ノード V1 の場合、これを行うという if ステートメントを作成できるようにしたいと考えています。if(node.equals(thisleaf)))をどうするか、thisleafオブジェクトが何と等しいかがわからないだけです。

4

1 に答える 1

0

フィールドを宣言する

private DefaultMutableTreeNode v1Node;

3 行目を次のように変更します。

this.v1Node = new DefaultMutableTreeNode("V1");

と使用

if (node.equals(this.v1Node))

補足:完全修飾名の代わりにjavax.swing.tree.DefaultMutableTreeNode使用するだけで、インポートしてコードを読みやすくする必要があります。DefaultMutableTreeNodeまた、treeNode1、jTree2 などではなく、意味のある変数名を選択する必要があります。このような不適切な名前は、コードを非常に理解しにくくします。

于 2012-11-01T23:20:23.163 に答える