相关疑难解决方法(0)

右键单击Java JTree的上下文菜单?

我正在尝试在Java JTree中实现弹出菜单.我已经对DefaultTreeCellRenderer(更改节点外观)和DefaultTreeCellEditor(创建组件以附加事件侦听器)进行了细分,因为显然DefaultTreeCellRenderer.getTreeCellRendererComponent()返回的组件不能这样做吗?).我真的不想"编辑"节点,只需在节点右键单击时弹出菜单,但这是我现在想到的唯一方法......

下面是我到目前为止的代码 - 我只想弄清楚如何捕获MouseEvents.它有点工作,但很糟糕.有什么更好的方法来完成我在这里要做的事情?

private class My_TreeCellRenderer extends DefaultTreeCellRenderer { 
    My_TreeCellRenderer() {
        super ();
    }   

    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);

        // set label text and tool tips
        setText(((My_Object)value).getTreeLabel());
        setToolTipText(((My_Object)value).getTreeToolTip());

        return this;
    }
}

private class My_TreeCellEditor extends DefaultTreeCellEditor { 
    private MouseAdapter ma;

    My_TreeCellEditor(JTree tree, DefaultTreeCellRenderer renderer) {
        super (tree, renderer);
        ma = new MouseAdapter() {
            public void mousePressed(MouseEvent e) { …
Run Code Online (Sandbox Code Playgroud)

java contextmenu jtree

29
推荐指数
4
解决办法
4万
查看次数

标签 统计

contextmenu ×1

java ×1

jtree ×1