Tag: treenode

JTree将节点背景设置为非不透明

请看一下SSCCE。 如何使未选择的树节点的背景透明。 目前,未选择节点的背景为白色。 但是,我的单元格渲染器应该将其绘制为非透明(如果未选中)(选择时为绿色……它的作用)。 最后,我希望未选择的节点只是没有背景的文本,因为SSCCE中红色的区域在我的应用程序中有一个渐变填充。 import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.Container; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTree; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeCellRenderer; public class SimpleTree extends JFrame { public static void main(final String[] args) { new SimpleTree(); } public SimpleTree() { super(“Creating a Simple JTree”); final Container content = this.getContentPane(); content.setBackground(Color.RED); final Object[] hierarchy […]

Java错误:新的通用TreeNode数组

我有TreeNode的generics类: public class TreeNode { public E key; public int num_of_children; public TreeNode [] children; public TreeNode(int num_of_children) { this.num_of_children = num_of_children; children = new TreeNode[num_of_children];// Why not: new TreeNode[num_of_children]? } public TreeNode clone() { TreeNode node = new TreeNode(num_of_children); return node; } } 当我尝试这样做时: children = new TreeNode [num_of_children]; 我收到错误。 但“新的TreeNode [num_of_children]”有效。 我读到了类型擦除,我不明白为什么TreeNode[]不起作用。 这是为什么? […]

将图标设置为Jtree中的每个节点

我想为我的JTree中的每个节点设置一个不同的图标,实际上我是从数据库加载每个节点,用“while”,我将每个图标设置为root,leaf或parent。 喜欢这个: 我的所有声明都是全球性的: private ResultSet myResultSet; protected DefaultTreeModel treeModel; private DefaultMutableTreeNode rootNode,childNode,parent1,parent2; 这是我设置节点的代码: myResultSet=rtnNodes(); /*Method that returns a RS with my nodes*/ while(myResultSet.next()){ switch(myResultSet.getInt(1)){ /*The first column is the type of node: root, parent, leaf…*/ case 0: treeModel = new DefaultTreeModel((rootNode=new DefaultMutableTreeNode(myResultSet.getString(2)))); break; /*root node*/ case 1: case 4: parent1 = parent2 = makeNode(rootNode); break; […]

Java:如何以编程方式选择和扩展JTree中的多个节点?

我有一个JTree和一个awt.Canvas 。 当我从Canvas选择多个对象到objList ,我希望所有选定的项目都在JTree为选中状态。 这意味着,例如,如果我选择了2个对象,则应扩展其到root的路径,并且每个所选对象也应选择其对应的TreeNode 。 我的JTree有TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION 。 这是我使用的扩展function的示例: public void selectTreeNodes() { HashMap entities = …; Iterator it = entities.keySet().iterator(); while (it.hasNext()) { String str = it.next().toString(); MyEntity ent = entities.get(str); if (ent.isSelected()) { DefaultMutableTreeNode searchNode = searchNode(ent.getName()); if (searchNode != null) { TreeNode[] nodes = ((DefaultTreeModel) tree.getModel()).getPathToRoot(searchNode); TreePath tpath = new TreePath(nodes); tree.scrollPathToVisible(tpath); […]

如何深度复制二叉树?

我想使用自己的Node类在Java中实现树结构。 但我很困惑如何做一个深拷贝来复制树。 我的Node类是这样的: public class Node{ private String value; private Node leftChild; private Node rightChild; …. 我是递归的新手,所以我可以学习任何代码吗? 谢谢!