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
可以使用渲染器Renderer来改变默认的现实的效果,
还提供编辑器Editor来改变 编辑时的效果
当然了需要写一个自己的渲染器和编辑器,然后设置给组件才可以实现
简单的参考代码如下
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
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯