 |
-- 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);
}
});
}
}
|