The Source for Java Technology Collaboration


-- Main.aberrant - 16 May 2008

Simple demo of how to use a DefaultCellEditor? in a JTree.

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.EventObject;

import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.SwingUtilities;
import javax.swing.event.CellEditorListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeCellEditor;
import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeCellEditor;
import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel;

/**
 * @author Collin Fagan
 */
public class CustomEditorDemoPanel extends JPanel {
    
    // a tree with no model uses the default "colors, sports, and food" tree
    private JTree tree = new JTree();
    private JPopupMenu menu = new JPopupMenu("Operations");
    private String[] choices = {"One", "Two", "Red", "Blue"};
    private JComboBox comboEditor = new JComboBox(choices);
    
    /**
     *
     */
    public CustomEditorDemoPanel() {
        setLayout(new BorderLayout());
        add(new JScrollPane(tree));
        
        comboEditor.setEditable(true);
        tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
        tree.setShowsRootHandles(true);
        tree.setEditable(true);
        tree.setCellEditor(new DefaultCellEditor(comboEditor));
    }
    
    /**
     *
     * @param args
     */
    public static void main(String[] args){
        SwingUtilities.invokeLater(new Runnable(){
            public void run() {
                JFrame demoFrame = new JFrame("Custom Editor Demo");
                demoFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                demoFrame.setContentPane(new CustomEditorDemoPanel());
                demoFrame.setSize(300, 600);
                // centers the frame on the screen
                demoFrame.setLocationRelativeTo(null);
                demoFrame.setVisible(true);
            }
        });
    }
}

Topic CustomEditorDemo . { Edit | Ref-By | Printable | Diffs r3 < r2 < r1 | More }
 XML java.net RSS

Revision r3 - 19 May 2008 - 15:43:06 - Main.aberrant
Parents: WebHome > Javatutorials