Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.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 TreeCeleditor在编辑单元格后执行操作_Java_Swing_Jtree - Fatal编程技术网

Java TreeCeleditor在编辑单元格后执行操作

Java TreeCeleditor在编辑单元格后执行操作,java,swing,jtree,Java,Swing,Jtree,我想在CellEditor消失后执行一个操作。然后调用哪个方法,从哪里开始?您必须通过向树中添加CellEditorListener来收听JTree的CellEditor tree.getCellEditor().addCellEditorListener(new CellEditorListener() { @Override public void editingStopped(ChangeEvent e) { System.out

我想在CellEditor消失后执行一个操作。然后调用哪个方法,从哪里开始?

您必须通过向树中添加
CellEditorListener
来收听
JTree
的CellEditor

 tree.getCellEditor().addCellEditorListener(new CellEditorListener() {

        @Override
        public void editingStopped(ChangeEvent e) {
            System.out.println(((DefaultCellEditor)e.getSource()).getCellEditorValue());
        }

        @Override
        public void editingCanceled(ChangeEvent e) {
             System.out.println(((DefaultCellEditor)e.getSource()).getCellEditorValue());
        }
    });
完整示例

  JFrame frame = new JFrame();

    //Mock data
    DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root");
    for (int i = 1; i < 5; i++) {
        DefaultMutableTreeNode parent = new DefaultMutableTreeNode("Parent" + i);
        for (int j = 1; j < 5; j++) {
            parent.add(new DefaultMutableTreeNode("Child" + j));
        }
        root.add(parent);
    }

    DefaultTreeModel tmodel = new DefaultTreeModel(root);
    JTree tree = new JTree(tmodel);

    tree.setEditable(true);//To enable editing

    tree.getCellEditor().addCellEditorListener(new CellEditorListener() {

        @Override
        public void editingStopped(ChangeEvent e) {
            //add you code here
            System.out.println(((DefaultCellEditor) e.getSource()).getCellEditorValue());
        }

        @Override
        public void editingCanceled(ChangeEvent e) {
            //add you code here too
            System.out.println(((DefaultCellEditor) e.getSource()).getCellEditorValue());
        }
    });
    frame.add(new JScrollPane(tree));

    frame.setTitle("Tree Editor Example");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.pack();
    frame.setVisible(true);
JFrame=newjframe();
//模拟数据
DefaultMutableTreeNode根=新的DefaultMutableTreeNode(“根”);
对于(int i=1;i<5;i++){
DefaultMutableTreeNode父节点=新的DefaultMutableTreeNode(“父节点”+i);
对于(int j=1;j<5;j++){
添加(新的DefaultMutableTreeNode(“子”+j));
}
root.add(父级);
}
DefaultTreeModel tmodel=新的DefaultTreeModel(根);
JTree树=新的JTree(tmodel);
tree.setEditable(true)//启用编辑的步骤
tree.getCellEditor().addCellEditorListener(新CellEditorListener()){
@凌驾
公共作废编辑停止(变更事件e){
//在这里添加您的代码
System.out.println(((DefaultCellEditor)e.getSource()).getCellEditorValue());
}
@凌驾
公共作废编辑已取消(更改事件e){
//在这里也添加您的代码
System.out.println(((DefaultCellEditor)e.getSource()).getCellEditorValue());
}
});
frame.add(新的JScrollPane(树));
frame.setTitle(“树编辑器示例”);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);

您必须通过向树中添加
CellEditorListener来收听
JTree
的CellEditor

 tree.getCellEditor().addCellEditorListener(new CellEditorListener() {

        @Override
        public void editingStopped(ChangeEvent e) {
            System.out.println(((DefaultCellEditor)e.getSource()).getCellEditorValue());
        }

        @Override
        public void editingCanceled(ChangeEvent e) {
             System.out.println(((DefaultCellEditor)e.getSource()).getCellEditorValue());
        }
    });
完整示例

  JFrame frame = new JFrame();

    //Mock data
    DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root");
    for (int i = 1; i < 5; i++) {
        DefaultMutableTreeNode parent = new DefaultMutableTreeNode("Parent" + i);
        for (int j = 1; j < 5; j++) {
            parent.add(new DefaultMutableTreeNode("Child" + j));
        }
        root.add(parent);
    }

    DefaultTreeModel tmodel = new DefaultTreeModel(root);
    JTree tree = new JTree(tmodel);

    tree.setEditable(true);//To enable editing

    tree.getCellEditor().addCellEditorListener(new CellEditorListener() {

        @Override
        public void editingStopped(ChangeEvent e) {
            //add you code here
            System.out.println(((DefaultCellEditor) e.getSource()).getCellEditorValue());
        }

        @Override
        public void editingCanceled(ChangeEvent e) {
            //add you code here too
            System.out.println(((DefaultCellEditor) e.getSource()).getCellEditorValue());
        }
    });
    frame.add(new JScrollPane(tree));

    frame.setTitle("Tree Editor Example");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.pack();
    frame.setVisible(true);
JFrame=newjframe();
//模拟数据
DefaultMutableTreeNode根=新的DefaultMutableTreeNode(“根”);
对于(int i=1;i<5;i++){
DefaultMutableTreeNode父节点=新的DefaultMutableTreeNode(“父节点”+i);
对于(int j=1;j<5;j++){
添加(新的DefaultMutableTreeNode(“子”+j));
}
root.add(父级);
}
DefaultTreeModel tmodel=新的DefaultTreeModel(根);
JTree树=新的JTree(tmodel);
tree.setEditable(true)//启用编辑的步骤
tree.getCellEditor().addCellEditorListener(新CellEditorListener()){
@凌驾
公共作废编辑停止(变更事件e){
//在这里添加您的代码
System.out.println(((DefaultCellEditor)e.getSource()).getCellEditorValue());
}
@凌驾
公共作废编辑已取消(更改事件e){
//在这里也添加您的代码
System.out.println(((DefaultCellEditor)e.getSource()).getCellEditorValue());
}
});
frame.add(新的JScrollPane(树));
frame.setTitle(“树编辑器示例”);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);

如果您能更多地解释您的问题或发布一些代码片段,这将非常有用。如果您能更多地解释您的问题或发布一些代码片段,这将非常有用。