永发信息网

jtree设置字体颜色

答案:1  悬赏:10  手机版
解决时间 2021-02-16 05:43
  • 提问者网友:凉末
  • 2021-02-15 07:19
jtree设置字体颜色
最佳答案
  • 五星知识达人网友:duile
  • 2021-02-15 08:48
JTree ,JTabel, JComboBox 等swing组件 ,
可以使用渲染器Renderer来改变默认的现实的效果,
还提供编辑器Editor来改变 编辑时的效果
当然了需要写一个自己的渲染器和编辑器,然后设置给组件才可以实现
  • JTree的渲染器 可以自定义一个MyNodeRenderer继承自DefaultTreeCellRenderer 来实现
    简单的参考代码如下
    mport java.awt.*;
    import javax.swing.*;
    import javax.swing.tree.DefaultTreeCellRenderer;

    public class TreeFrame extends JFrame {
    JTree jtree;

    public TreeFrame() {
    jtree = new JTree();
    jtree.setCellRenderer(new MyNodeRenderer());
    add(jtree);

    // 窗口属性的设置
    setTitle("窗口");// 窗口标题
    setSize(300, 300);// 窗口宽 高
    setLocationRelativeTo(null);// 窗口居中(屏幕中央)
    setDefaultCloseOperation(EXIT_ON_CLOSE);// 点击窗口右上角的按钮时结束程序
    }

    public static void main(String[] args) {
    new TreeFrame().setVisible(true);// 实例化并可见
    }

    //关键是继承DefaultTreeCellRenderer
    class MyNodeRenderer extends DefaultTreeCellRenderer {
    //重写getTreeCellRendererComponent的方法
    public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded,
    boolean leaf, int row, boolean hasFocus) {
    super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
    setForeground(Color.BLUE);// 设置文字的颜色
    setBackgroundSelectionColor(Color.ORANGE);// 设置选中时的背景色
    setBackgroundNonSelectionColor(Color.WHITE);// 设置没选中时的背景色

    return this;
    }
    }

    }如果需要更复杂的效果,可以深入了解DefaultTreeCellRenderer
  • 我要举报
    如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
    点此我要举报以上问答信息
    大家都在看
    推荐资讯