JTree中怎么改变节点的字体颜色?
来源:互联网 发布:bong3软件下载 编辑:程序博客网 时间:2024/05/08 12:17
package testTree;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import javax.swing.tree.*;public class SimpleTree extends JFrame{ JPanel contentPane; JScrollPane scrollPane = new JScrollPane(); MyTree tree = new MyTree(); DefaultTreeModel treeModel = (DefaultTreeModel)tree.getModel(); NodeRenderer renderer = new NodeRenderer(); NodeRenderer2 renderer2 = new NodeRenderer2(); private TreeMouseHandler treeMouseListener = new TreeMouseHandler(); //Constructor public SimpleTree() { enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } //Component initialization private void jbInit() throws Exception { tree.setEditable(false); tree.setShowsRootHandles(true); tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); tree.setExpandsSelectedPaths(true); tree.addMouseListener(treeMouseListener); tree.setCellRenderer(renderer); tree.addTreeExpansionListener(new TreeExpansionListener() { public void treeCollapsed(TreeExpansionEvent evt) { } public void treeExpanded(TreeExpansionEvent evt) { } }); contentPane = (JPanel) this.getContentPane(); this.setTitle("MyFrame"); scrollPane.getViewport().add(tree, null); contentPane.add(scrollPane, BorderLayout.CENTER); } //Overridden so we can exit when window is closed protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { System.exit(0); } } public static void main(String[] args) { SimpleTree simpleTree = new SimpleTree(); simpleTree.setSize(800,600); simpleTree.show(); } private class TreeMouseHandler extends MouseAdapter { public void mousePressed(MouseEvent e) { if(SwingUtilities.isLeftMouseButton(e) == false) { return; } System.out.println("mousePressed"); tree.setCellRenderer(renderer2); } public void mouseClicked(MouseEvent e) { if((SwingUtilities.isLeftMouseButton(e) == false)) { return; } TreePath[] selectedPaths = tree.getSelectionPaths(); if((selectedPaths == null) || (selectedPaths.length == 0)) { return; } if(selectedPaths.length == 1) { if(e.getClickCount() == 1) { System.out.println("mouseClicked: left button * 1 : " + selectedPaths[0]); } else if(e.getClickCount() == 2) { System.out.println("mouseClicked: left button * 2 : " + selectedPaths[0]); } } } } class MyTree extends JTree { public MyTree() { DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode("root"); DefaultMutableTreeNode sub1Node = new DefaultMutableTreeNode("sub1"); rootNode.add(sub1Node); DefaultMutableTreeNode n = new DefaultMutableTreeNode("011"); sub1Node.add(n); n.add(new DefaultMutableTreeNode("111")); n.add(new DefaultMutableTreeNode("112")); n.add(new DefaultMutableTreeNode("113")); n = new DefaultMutableTreeNode("012"); sub1Node.add(n); n.add(new DefaultMutableTreeNode("121")); n.add(new DefaultMutableTreeNode("122")); n.add(new DefaultMutableTreeNode("123")); this.setModel(new DefaultTreeModel(rootNode)); } } class NodeRenderer extends DefaultTreeCellRenderer { public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) { DefaultMutableTreeNode node = (DefaultMutableTreeNode)value; super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus); if(node.getUserObject().toString().trim().equals("sub1")) { setForeground(Color.RED); } return this; } } class NodeRenderer2 extends DefaultTreeCellRenderer { public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) { DefaultMutableTreeNode node = (DefaultMutableTreeNode)value; super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus); if(node.getUserObject().toString().trim().equals("sub1")) { setForeground(Color.RED); } if(node.getUserObject().toString().trim().equals("111")) { setForeground(Color.BLUE); } return this; } }}
0 0
- JTree中怎么改变节点的字体颜色?
- 改变treeview中节点的背景颜色和字体颜色
- Android TextView中怎么改变某个字体的颜色
- 改变Jtree节点的图标
- WinForm开发中针对TreeView控件改变当前选择节点的字体与颜色
- WinForm开发中针对TreeView控件改变当前选择节点的字体与颜色
- 改变ListBox中项的字体颜色。
- 改变ListBox中项的字体颜色。
- 改变ListBox中项的字体颜色。
- js的textarea中字体颜色改变
- unity3D中UGUI改变字体的颜色
- 改变UIALertView中button的字体颜色
- 改变下拉列表中字体的颜色
- ListView 中 背景颜色 和字体颜色的改变
- 怎么解决input框中加入disabled="disabled"之后,改变字体的颜色(默认的是灰色)
- 怎么解决input框中加入disabled="disabled"之后,改变字体的颜色(默认的是灰色)
- JTree中修改节点
- JComboBox中根据条件改变菜单中字体的颜色
- PopupWindow的进入和退出的动画效果设置
- 欢迎使用CSDN-markdown编辑器
- poj 2455 Secret Milking Machine 【二分 + 最大流】 【1到N不重复路径不少于T条时,求被选中路径上的最大边权值 的最小值】
- Dagger2官方CoffeeMaker案例的分解说明
- 彻底搞懂OC中GCD导致死锁的原因和解决方案
- JTree中怎么改变节点的字体颜色?
- 【Android】Suggestion: use tools:overrideLibrary="" to force usage
- 根据user stack 数据分析函数调用栈
- win7x86下内核调试下DbgPrint 不输出调试结果
- java继承构造函数
- Qt QString的arg()方法的使用
- C语言-计算机常识
- 机器语言-汇编语言-高级语言各自优缺点
- Markdown基础教程