emailtreecelleditor.java

来自「java swing 开发代码」· Java 代码 · 共 78 行

JAVA
78
字号
// EmailTreeCellEditor.java// An editor that actually manages two separate editors: one for folders// (nodes) that uses a combobox; and one for files (leaves) that uses a// textfield.//package	jswing.ch17;import javax.swing.*;import javax.swing.event.*;import java.awt.*;import java.util.*;import javax.swing.tree.*;public class EmailTreeCellEditor implements TreeCellEditor {  EditorComboBox nodeEditor;  EmailEditor leafEditor;  CellEditor currentEditor;  static String[] emailTypes = { "Home", "Work", "Pager", "Spam" };    public EmailTreeCellEditor() {        EmailEditor tf = new EmailEditor();        EditorComboBox cb = new EditorComboBox(emailTypes);        nodeEditor = cb;        leafEditor = tf;    }    public Component getTreeCellEditorComponent(JTree tree, Object value,                                                boolean isSelected,                                                boolean expanded,                                                boolean leaf, int row) {        if (leaf) {           currentEditor = leafEditor;          leafEditor.setText(value.toString());        }        else {          currentEditor = nodeEditor;          nodeEditor.setSelectedItem(              ((DefaultMutableTreeNode)value).getUserObject());        }        return (Component)currentEditor;    }    public Object getCellEditorValue() {      return currentEditor.getCellEditorValue();    }    // All cells are editable in this example...    public boolean isCellEditable(EventObject event) {      return true;    }    public boolean shouldSelectCell(EventObject event) {      return currentEditor.shouldSelectCell(event);    }    public boolean stopCellEditing() {      return currentEditor.stopCellEditing();    }    public void cancelCellEditing() {      currentEditor.cancelCellEditing();    }    public void addCellEditorListener(CellEditorListener l) {      nodeEditor.addCellEditorListener(l);      leafEditor.addCellEditorListener(l);    }    public void removeCellEditorListener(CellEditorListener l) {      nodeEditor.removeCellEditorListener(l);      leafEditor.removeCellEditorListener(l);    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?