Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JTreeNode中的两个图像?_Java_Image_Swing_Jtree_Renderer - Fatal编程技术网

Java JTreeNode中的两个图像?

Java JTreeNode中的两个图像?,java,image,swing,jtree,renderer,Java,Image,Swing,Jtree,Renderer,我有一些定制的JTree。该树具有带有自定义图标的节点。我还有一个类,它使用方法gettreecellrendercomponent扩展了DefaultTreeCellRenderer,如下所示: super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus); MyTreeNode node = ((MyTreeNode) value); Icon icon = node.getIcon()

我有一些定制的JTree。该树具有带有自定义图标的节点。我还有一个类,它使用方法
gettreecellrendercomponent
扩展了
DefaultTreeCellRenderer
,如下所示:

super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
MyTreeNode node = ((MyTreeNode) value);
Icon icon = node.getIcon();
setIcon(icon);
return this;
它起作用了。我的树节点将以
图标文本
格式的自定义图标呈现。但是有没有办法在我的节点中放置两个图标!我希望有一个这样的节点:
图标文本另一个带有图像的标签


如何做?

您应该创建自己的
TreeCellRenderer
,它从
JPanel
之类的东西扩展而来


通过这种方式,您可以定义自己的布局需求并添加自己的组件以支持您的需求

您应该创建自己的
TreeCellRenderer
,它从
JPanel
扩展而来


通过这种方式,您可以定义自己的布局需求并添加自己的组件以支持您的需求

用于呈现树节点的默认组件是JLabel。因此,您可以访问
setIcon
方法


但是,如果要为一个节点设置两个图标,则需要创建一个包含两个标签的JPanel。

用于渲染树节点的默认组件是JLabel。因此,您可以访问
setIcon
方法

但是如果你想为一个节点设置两个图标,你需要创建一个带有两个标签的JPanel。

  • (J)组件
    /
    JLabel
    (由
    渲染器
    返回)尚未在API中实现任何
    布局管理器

  • JLabel
    文本
    图标
    的构造函数,没有其他
    图标的位置

  • 基本上,每个
    JComponent
    都是容器,部分
    containers
    已经在API中实现了
    LayoutManager
    JFrame
    JPanel
    ),您可以将任何
    JComponent
    放到另一个

  • 由camickr制作,尤其是复合图标

      • (J)组件
        /
        JLabel
        (由
        渲染器
        返回)尚未在API中实现任何
        布局管理器

      • JLabel
        文本
        图标
        的构造函数,没有其他
        图标的位置

      • 基本上,每个
        JComponent
        都是容器,部分
        containers
        已经在API中实现了
        LayoutManager
        JFrame
        JPanel
        ),您可以将任何
        JComponent
        放到另一个

      • 由camickr制作,尤其是复合图标


      您还可以创建一个结合了两个(或更多)其他图标的图标。例如,请参见

      您还可以创建一个图标,该图标组合了两个(或更多)其他图标。例如,请参见

      我尝试过,但是我的树(有11000个节点)太慢了!不能为每个节点创建两个图标标签,而只能为整个树创建一个图标标签。您应该了解TreeCellRenderer是如何设计的(flyweight模式)。您的意思是,就像我在所有节点中使用的“singleton标签”?
      和11000个节点???
      ==仅将
      渲染器
      应用于从
      JVievport
      返回的可见
      矩形,这已经由Swing处理。我试过了,但是我的树(有11000个节点)太慢了!不能为每个节点创建两个图标标签,而只能为整个树创建一个图标标签。您应该了解TreeCellRenderer是如何设计的(flyweight模式)。您的意思是,就像我在所有节点中使用的“singleton标签”?
      和11000个节点???
      ==仅将
      渲染器
      应用于从
      JVievport
      返回的可见
      矩形,这已经由Swing处理。仅绘制显示的节点。