当前位置:  技术问答>java相关

JBuilder高手请进,JTree中删除了一个结点然后聚焦在它的父结点上该怎么办?最好还能触发valueChanged事件,在线等待...?

    来源: 互联网  发布时间:2015-07-07

    本文导语:  JBuilder高手请进,JTree中删除了一个结点然后聚焦在它的父结点上该怎么办?最好还能触发valueChanged事件? | 罪魁祸首就是 selparent.remove(selnd); 使用了这一条之后必须使用 treeModel.reload(); 来刷新...

JBuilder高手请进,JTree中删除了一个结点然后聚焦在它的父结点上该怎么办?最好还能触发valueChanged事件?

|
罪魁祸首就是
selparent.remove(selnd);
使用了这一条之后必须使用
treeModel.reload();
来刷新整个树
而这样selection和expand状态就完全改变了。

请参考下边的例子:
使用
_model.removeNodeFromParent(node);
来删除一个节点:

import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*;
import java.awt.*;
import java.awt.event.*;

public class Test extends JFrame {
    JTree _tree = new JTree();
    DefaultTreeModel _model = (DefaultTreeModel)_tree.getModel();
    TreeSelectionModel _selectionModel = _tree.getSelectionModel();
    JButton _removeButton = new JButton("Remove selected node");

    public Test()
    {
        Container contentPane = getContentPane();
        _selectionModel.setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);

        contentPane.add(new ControlPanel(), BorderLayout.NORTH);
        contentPane.add(_tree, BorderLayout.CENTER);

        _tree.addTreeSelectionListener(new TreeSelectionListener(){

            public void valueChanged(TreeSelectionEvent e)
            {
                TreePath path = e.getNewLeadSelectionPath();
                boolean nodesAreSelected = (path != null);
                _removeButton.setEnabled(nodesAreSelected);
            }
        });
    }
    class ControlPanel extends JPanel
    {
        public ControlPanel()
        {
            _removeButton.setEnabled(false);
            add(_removeButton);
            _removeButton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    TreePath path = 
                             _selectionModel.getSelectionPath();

                    if(path.getPathCount() == 1) {
                        JOptionPane.showMessageDialog(ControlPanel.this,
                                        "Can't remove root node!");
                        return;
                    }

                    MutableTreeNode node = 
                     (MutableTreeNode)path.getLastPathComponent();
                    
                    TreePath parentPath = path.getParentPath();

                    _model.removeNodeFromParent(node);

                    _tree.setSelectionPath(parentPath);
                }
            });
        }
    }
    public static void main(String args[]) {
        GraphicJavaApplication.launch(new Test(), 
                    "_tree Model Example",300,300,450,300);
    }
}
class GraphicJavaApplication extends WindowAdapter
{
    public static void launch(final JFrame f, String title,
                              final int x, final int y, 
                              final int w, int h)
    {
        f.setTitle(title);
        f.setBounds(x,y,w,h);
        f.setVisible(true);
        f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        f.addWindowListener(new WindowAdapter()
        {
            public void windowClosed(WindowEvent e)
            {
                System.exit(0);
            }
        });
    }
}

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • jbuilder7突然打不开,unable to open jbuilder.congif??????????
  • JBuilder6 或JBuilder7如何注册?
  • 用jbuilder 编写的appliction 程序,如何独立于jbuilder 编译器之外运行?
  • JBuilder 6 在 winxp 下使用微软拼音输入法,输入中文。出现不正常。jbuilder.死锁
  • 谁有JBuilder的补丁,或是第三方控件,能完善一下JBuilder的功能的???
  • 在JBuilder中写了一个程序,脱离了JBuilder怎么运行?
  • 为什么Jbuilder 3可以编译通过的问题再Jbuilder 6下编译通不过了
  • 请问jbuilder7.0会不会比jbuilder6好啊?哪里有下载的?
  • 关于用Jbuilder进行程序调试?(用过Jbuilder的请发言)
  • jbuilder7 or jbuilder6 download adress?
  • 高分求助!偶公司要买jbuilder8 !请问买jbuilder8有包含哪些组件或工具?
  • 网络技术 iis7站长之家
  • 请问那有jbuilder7的enterprise,borland上的jbuilder 7 enterprise trial是吗?
  • 小弟我正想学习Java,打算使用JBuilder,不知哪位前辈肯介绍一下JBuilder,用的人多不多?
  • 除了发布虚拟机外,发布JBuilder应用程序应发布我的哪些文件?怎样脱离JBuilder环境?
  • 新手请教:unix下能用Jbuilder开发吗?或者Jbuilder开发的程序在unix运行?
  • 我手动删除了jbuilder6自带的jdk,如何才能让jbuilder用我其他地方的jdk呀?
  • 我在jbuilder4.0中编的applet程序在jbuilder3.5中为何不能运行
  • 哪位能介绍一下JBuilder7有哪些优点,我为什么应该从JBuilder6换成7?
  • 如何脱离jbuilder 环境。用jbuilder熟悉的朋友帮忙。


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3