小编Kal*_*Kal的帖子

复合JTree节点允许事件传递到下面的对象

我正在尝试创建一个JTree,其中一些节点是包含JLabel和JButton的复合对象.Node表示JLabel显示的服务器和端口,JButton将使用Desktop API打开默认浏览器并转到URL.

我已经阅读了以下内容,并尽可能地密切关注它们.节点显示我想要的方式(主要是 - 我可以处理以后更好),但当我尝试点击按钮时,JTree正在响应事件,而不是按钮.

java swing:为JTree项添加自定义图形按钮

http://www.java2s.com/Code/Java/Swing-JFC/TreeCellRenderer.htm

/sf/answers/263841091/

我需要知道如何允许事件通过JTree,以便它们由下面的对象(JButton或JLabel)处理.

这是我的TreeCellEditor:

public class UrlValidationCellEditor extends DefaultTreeCellEditor
{
    public UrlValidationCellEditor(JTree tree, DefaultTreeCellRenderer renderer)
    {
        super(tree, renderer);
    }

    @Override
    public Component getTreeCellEditorComponent(JTree tree, Object value,
            boolean isSelected, boolean expanded, boolean leaf, int row)
    {
        return renderer.getTreeCellRendererComponent(tree, value, true, expanded, leaf, row, true);
    }

    @Override
    public boolean isCellEditable(EventObject anEvent)
    {
        return true; // Or make this conditional depending on the node
    }
}
Run Code Online (Sandbox Code Playgroud)

这是TreeCellRenderer:

public class UrlValidationRenderer extends DefaultTreeCellRenderer implements TreeCellRenderer
{
    JLabel …
Run Code Online (Sandbox Code Playgroud)

java swing renderer jtree

3
推荐指数
1
解决办法
2713
查看次数

标签 统计

java ×1

jtree ×1

renderer ×1

swing ×1