以下是最初的代码,刚建立Application,拖放了一个JTree上去,什么都没做的代码。现在我要在树的节点上点击右键,在弹出菜单中点击“删除”,把当前右键选中的节点删除。
我查了资料试了阵子,越写越乱,只好求助哪位朋友写一个简单点的例子给小弟学习一下。谢谢。
package treetest;import java.awt.BorderLayout;
import java.awt.Dimension;import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTree;
import java.awt.Rectangle;public class TreeTestFrame extends JFrame {
JPanel contentPane;
JTree jTree1 = new JTree();
public TreeTestFrame() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
} /**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(null);
setSize(new Dimension(400, 300));
setTitle("Frame Title");
jTree1.setBounds(new Rectangle(38, 11, 303, 236));
contentPane.add(jTree1);
}
}
我查了资料试了阵子,越写越乱,只好求助哪位朋友写一个简单点的例子给小弟学习一下。谢谢。
package treetest;import java.awt.BorderLayout;
import java.awt.Dimension;import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTree;
import java.awt.Rectangle;public class TreeTestFrame extends JFrame {
JPanel contentPane;
JTree jTree1 = new JTree();
public TreeTestFrame() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
} /**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(null);
setSize(new Dimension(400, 300));
setTitle("Frame Title");
jTree1.setBounds(new Rectangle(38, 11, 303, 236));
contentPane.add(jTree1);
}
}
//弹出右键菜单,TreeRightMouse是一个自定义Popupmenu
@Override
public void mouseReleased(MouseEvent e) {
int n = tree.getRowForLocation(e.getX(), e.getY());
if (n < 0) {
return;
}
if (e.getButton() == MouseEvent.BUTTON3) {
TreePath selTree = tree.getPathForRow(n);
DefaultMutableTreeNode selNode = (DefaultMutableTreeNode) selTree.getLastPathComponent();
if (selNode.isLeaf()) {
//如果为叶子,弹出叶子菜单
TreeRightMouse temp = new TreeRightMouse("L");
temp.show(e.getComponent(), e.getX(), e.getY());
} else {
//父节点,弹出父节点菜单
TreeRightMouse temp = new TreeRightMouse("P");
temp.show(e.getComponent(), e.getX(), e.getY());
}
}
}
});
private JMenuItem jmilookACard = new JMenuItem("查看联系人消息");
private JMenuItem jmimoveACard = new JMenuItem("联系人移到组...");
private JMenuItem jmipdeleteACard = new JMenuItem("删除联系人");
private JMenuItem jmirenameATeam = new JMenuItem("重命名组");
private JMenuItem jmideleteATeam = new JMenuItem("删除组");
private JMenuItem jmideleteAllTeamer = new JMenuItem("删除组成员"); //空的构造方法
public TreeRightMouse(String LorP) {
if (LorP.equals("L")) {
add(jmilookACard );
add(jmimoveACard);
add(jmipdeleteACard);
}
if (LorP.equals("P")) {
add(jmirenameATeam);
add(jmideleteATeam);
add(jmideleteAllTeamer);
}