我现在找到一种方法可以试试:
修改后安回车肯定会触发改编辑器(JTextField的子类见DefaultTreeCellEditor)的ActionListener的方法,但如何得到改编辑器呢?
继承DefaultTreeCellEditor,重载createTreeCellEditor方法
再通过tree的setCellEditor()将你的CellEditor设置进去。大概是:tree.setCellEditor(new DefaultTreeCellEditor(tree,(DefaultTreeCellRenderer)tree.getCellRenderer()) {
protected TreeCellEditor createTreeCellEditor() {
javax.swing.border.Border              aBorder = UIManager.getBorder("Tree.editorBorder");
final DefaultTextField test = new DefaultTextField(aBorder);
test.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
System.out.println(test.getText());
}
});
DefaultCellEditor   editor = new DefaultCellEditor
    (test) {
    public boolean shouldSelectCell(java.util.EventObject event) {
boolean retValue = super.shouldSelectCell(event);
getComponent().requestFocus();
return retValue;
    }
}; // One click to edit.
editor.setClickCountToStart(1);
return editor;
    }
});

解决方案 »

  1.   

    我现在找到一种方法可以试试:
    修改后安回车肯定会触发改编辑器(JTextField的子类见DefaultTreeCellEditor)的ActionListener的方法,但如何得到改编辑器呢?
    继承DefaultTreeCellEditor,重载createTreeCellEditor方法
    再通过tree的setCellEditor()将你的CellEditor设置进去。大概是:tree.setCellEditor(new DefaultTreeCellEditor(tree,(DefaultTreeCellRenderer)tree.getCellRenderer()) {
    protected TreeCellEditor createTreeCellEditor() {
    javax.swing.border.Border              aBorder = UIManager.getBorder("Tree.editorBorder");
    final DefaultTextField test = new DefaultTextField(aBorder);
    test.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e) {
    System.out.println(test.getText());
    }
    });
    DefaultCellEditor   editor = new DefaultCellEditor
        (test) {
        public boolean shouldSelectCell(java.util.EventObject event) {
    boolean retValue = super.shouldSelectCell(event);
    getComponent().requestFocus();
    return retValue;
        }
    }; // One click to edit.
    editor.setClickCountToStart(1);
    return editor;
        }
    });
      

  2.   

    将System.out.println(test.getText());改成你需要的代码!