import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.tree.*;
public class Test extends JFrame implements ActionListener {
private JSplitPane jSplitPane1;
private JScrollPane jScrollPane1;
private JTree tree;
private JPanel jPanel1;
private JToolBar jToolBar1;
private JButton jButton1,jButton2,jButton3,jButton4,jButton5;
private JMenuBar jMenuBar1;
private JMenu jMenu1,jMenu2;
private DefaultTreeModel model;
public Test() {
JFrame f = new JFrame("Snowman Cad");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jSplitPane1 = new JSplitPane();
jScrollPane1 = new JScrollPane();
jPanel1 = new JPanel();
jToolBar1 = new JToolBar();
jButton1 = new JButton();
jButton2 = new JButton();
jButton3 = new JButton();
jButton4 = new JButton();
jButton5 = new JButton();
jMenuBar1 = new JMenuBar();
jMenu1 = new JMenu();
jMenu2 = new JMenu();
TreeNode root = makeSampleTree();
model = new DefaultTreeModel(root);
tree = new JTree(model);
tree.setEditable(true);
f.setLayout(new BorderLayout());
jSplitPane1.setRightComponent(jPanel1);
jScrollPane1.setViewportView(tree);
jSplitPane1.setLeftComponent(jScrollPane1);
f.getContentPane().add(jSplitPane1, BorderLayout.CENTER);
jButton1.setText("remove");
jButton1.addActionListener(this);
jToolBar1.add(jButton1);
jButton2.setText("addSibling");
jButton2.addActionListener(this);
jToolBar1.add(jButton2);
jButton3.setText("addChild");
jButton3.addActionListener(this);
jToolBar1.add(jButton3);
jButton4.setText("Group");
jToolBar1.add(jButton4);
jButton5.setText("UnGroup");
jToolBar1.add(jButton5);
f.getContentPane().add(jToolBar1,BorderLayout.SOUTH);
jMenu1.setText("file");
jMenuBar1.add(jMenu1);
JMenuItem menuItem1 = new JMenuItem("exit",KeyEvent.VK_E);
jMenu1.add(menuItem1);
menuItem1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
jMenu2.setText("shapes");
jMenuBar1.add(jMenu2);
JMenuItem menuItem2 = new JMenuItem("Remove",KeyEvent.VK_R);
jMenu2.add(menuItem2);
menuItem2.addActionListener(this);
JMenuItem menuItem3 = new JMenuItem("Group",KeyEvent.VK_G);
jMenu2.add(menuItem3);
menuItem3.addActionListener(this);
JMenuItem menuItem4 = new JMenuItem("Ungroup",KeyEvent.VK_U);
jMenu2.add(menuItem4);
menuItem4.addActionListener(this);
f.getContentPane().add(jMenuBar1, BorderLayout.NORTH);
f.pack();
f.setVisible(true);
}
public TreeNode makeSampleTree() {
DefaultMutableTreeNode root = new DefaultMutableTreeNode("Default");
DefaultMutableTreeNode composite1 = new DefaultMutableTreeNode("Graphic Composite1");
root.add(composite1);
DefaultMutableTreeNode composite2 = new DefaultMutableTreeNode("Graphic Composite2");
root.add(composite2);
DefaultMutableTreeNode rectangle1 = new DefaultMutableTreeNode("Rectangle1");
composite1.add(rectangle1);
DefaultMutableTreeNode rectangle2 = new DefaultMutableTreeNode("Rectangle2");
composite1.add(rectangle2);
DefaultMutableTreeNode circle1 = new DefaultMutableTreeNode("Circle1");
composite1.add(circle1);
DefaultMutableTreeNode circle2 = new DefaultMutableTreeNode("Circle2");
composite1.add(circle2);
DefaultMutableTreeNode rectangle3 = new DefaultMutableTreeNode("Rectangle3");
composite1.add(rectangle3);
DefaultMutableTreeNode rectangle4 = new DefaultMutableTreeNode("Rectangle4");
composite1.add(rectangle4);
DefaultMutableTreeNode text = new DefaultMutableTreeNode("Text");
composite2.add(text);
return root;
}
public void actionPerformed(ActionEvent event) {
DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode)
tree.getLastSelectedPathComponent();
if (selectedNode == null) return;
if (event.getSource().equals(jButton1)) {
if (selectedNode.getParent() != null)
model.removeNodeFromParent(selectedNode);
return;
}
// add new node as sibling or child
DefaultMutableTreeNode newNode = new DefaultMutableTreeNode("New");
if (event.getSource().equals(jButton2)) {
DefaultMutableTreeNode parent = (DefaultMutableTreeNode)selectedNode.getParent();
if (parent != null) {
int selectedIndex = parent.getIndex(selectedNode);
model.insertNodeInto(newNode, parent, selectedIndex + 1);
}
}
else if (event.getSource().equals(jButton3)) {
model.insertNodeInto(newNode, selectedNode,selectedNode.getChildCount());
}
// now display new node
TreeNode[] nodes = model.getPathToRoot(newNode);
TreePath path = new TreePath(nodes);
tree.scrollPathToVisible(path);
}
public static void main(String[] args){
new Test();
}
}
import java.awt.event.*;
import javax.swing.*;
import javax.swing.tree.*;
public class Test extends JFrame implements ActionListener {
private JSplitPane jSplitPane1;
private JScrollPane jScrollPane1;
private JTree tree;
private JPanel jPanel1;
private JToolBar jToolBar1;
private JButton jButton1,jButton2,jButton3,jButton4,jButton5;
private JMenuBar jMenuBar1;
private JMenu jMenu1,jMenu2;
private DefaultTreeModel model;
public Test() {
JFrame f = new JFrame("Snowman Cad");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jSplitPane1 = new JSplitPane();
jScrollPane1 = new JScrollPane();
jPanel1 = new JPanel();
jToolBar1 = new JToolBar();
jButton1 = new JButton();
jButton2 = new JButton();
jButton3 = new JButton();
jButton4 = new JButton();
jButton5 = new JButton();
jMenuBar1 = new JMenuBar();
jMenu1 = new JMenu();
jMenu2 = new JMenu();
TreeNode root = makeSampleTree();
model = new DefaultTreeModel(root);
tree = new JTree(model);
tree.setEditable(true);
f.setLayout(new BorderLayout());
jSplitPane1.setRightComponent(jPanel1);
jScrollPane1.setViewportView(tree);
jSplitPane1.setLeftComponent(jScrollPane1);
f.getContentPane().add(jSplitPane1, BorderLayout.CENTER);
jButton1.setText("remove");
jButton1.addActionListener(this);
jToolBar1.add(jButton1);
jButton2.setText("addSibling");
jButton2.addActionListener(this);
jToolBar1.add(jButton2);
jButton3.setText("addChild");
jButton3.addActionListener(this);
jToolBar1.add(jButton3);
jButton4.setText("Group");
jToolBar1.add(jButton4);
jButton5.setText("UnGroup");
jToolBar1.add(jButton5);
f.getContentPane().add(jToolBar1,BorderLayout.SOUTH);
jMenu1.setText("file");
jMenuBar1.add(jMenu1);
JMenuItem menuItem1 = new JMenuItem("exit",KeyEvent.VK_E);
jMenu1.add(menuItem1);
menuItem1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
jMenu2.setText("shapes");
jMenuBar1.add(jMenu2);
JMenuItem menuItem2 = new JMenuItem("Remove",KeyEvent.VK_R);
jMenu2.add(menuItem2);
menuItem2.addActionListener(this);
JMenuItem menuItem3 = new JMenuItem("Group",KeyEvent.VK_G);
jMenu2.add(menuItem3);
menuItem3.addActionListener(this);
JMenuItem menuItem4 = new JMenuItem("Ungroup",KeyEvent.VK_U);
jMenu2.add(menuItem4);
menuItem4.addActionListener(this);
f.getContentPane().add(jMenuBar1, BorderLayout.NORTH);
f.pack();
f.setVisible(true);
}
public TreeNode makeSampleTree() {
DefaultMutableTreeNode root = new DefaultMutableTreeNode("Default");
DefaultMutableTreeNode composite1 = new DefaultMutableTreeNode("Graphic Composite1");
root.add(composite1);
DefaultMutableTreeNode composite2 = new DefaultMutableTreeNode("Graphic Composite2");
root.add(composite2);
DefaultMutableTreeNode rectangle1 = new DefaultMutableTreeNode("Rectangle1");
composite1.add(rectangle1);
DefaultMutableTreeNode rectangle2 = new DefaultMutableTreeNode("Rectangle2");
composite1.add(rectangle2);
DefaultMutableTreeNode circle1 = new DefaultMutableTreeNode("Circle1");
composite1.add(circle1);
DefaultMutableTreeNode circle2 = new DefaultMutableTreeNode("Circle2");
composite1.add(circle2);
DefaultMutableTreeNode rectangle3 = new DefaultMutableTreeNode("Rectangle3");
composite1.add(rectangle3);
DefaultMutableTreeNode rectangle4 = new DefaultMutableTreeNode("Rectangle4");
composite1.add(rectangle4);
DefaultMutableTreeNode text = new DefaultMutableTreeNode("Text");
composite2.add(text);
return root;
}
public void actionPerformed(ActionEvent event) {
DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode)
tree.getLastSelectedPathComponent();
if (selectedNode == null) return;
if (event.getSource().equals(jButton1)) {
if (selectedNode.getParent() != null)
model.removeNodeFromParent(selectedNode);
return;
}
// add new node as sibling or child
DefaultMutableTreeNode newNode = new DefaultMutableTreeNode("New");
if (event.getSource().equals(jButton2)) {
DefaultMutableTreeNode parent = (DefaultMutableTreeNode)selectedNode.getParent();
if (parent != null) {
int selectedIndex = parent.getIndex(selectedNode);
model.insertNodeInto(newNode, parent, selectedIndex + 1);
}
}
else if (event.getSource().equals(jButton3)) {
model.insertNodeInto(newNode, selectedNode,selectedNode.getChildCount());
}
// now display new node
TreeNode[] nodes = model.getPathToRoot(newNode);
TreePath path = new TreePath(nodes);
tree.scrollPathToVisible(path);
}
public static void main(String[] args){
new Test();
}
}
if (event.getSource().equals(jButton1))
改成:
if (event.getSource().equals(jButton1) || event.getSource().equals(menuItem2) )
但是运行后提示说找不到menuitem2
请问到底要如何修改,谢谢!!
........
jButton1.setActionCommand("remove");
........
menuitem2.setActionCommand("remove");
........ if(event.getActionCommand().equals("remove"))
//doRemove();