import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JFrame; import javax.swing.JMenuItem; import javax.swing.JPopupMenu; import javax.swing.JScrollPane; import javax.swing.JTree; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeCellEditor; import javax.swing.tree.DefaultTreeCellRenderer; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreePath; import javax.swing.tree.TreeSelectionModel; public class TreePopupMenu extends JFrame implements MouseListener, ActionListener { // private static final long serialVersionUID = 1L; JTree tree; JPopupMenu popMenu;//右键菜单 JMenuItem addItem;//添加 JMenuItem delItem;//删除 JMenuItem editItem;//修改 public TreePopupMenu() { tree = new JTree(); tree.setEditable(true); tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); tree.addMouseListener(this); tree.setCellEditor(new DefaultTreeCellEditor(tree, new DefaultTreeCellRenderer())); setSize(200, 200); popMenu = new JPopupMenu(); addItem = new JMenuItem("添加"); addItem.addActionListener(this); delItem = new JMenuItem("删除"); delItem.addActionListener(this); editItem = new JMenuItem("修改"); editItem.addActionListener(this); popMenu.add(addItem); popMenu.add(delItem); popMenu.add(editItem); getContentPane().add(new JScrollPane(tree)); } public void mouseClicked(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mousePressed(MouseEvent e) { TreePath path = tree.getPathForLocation(e.getX(), e.getY()); if (path == null) { return; } tree.setSelectionPath(path); if (e.getButton() == 3) { popMenu.show(tree, e.getX(), e.getY()); } } public void mouseReleased(MouseEvent e) { } public void actionPerformed(ActionEvent e) { DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent(); if (e.getSource() == addItem) { ((DefaultTreeModel) tree.getModel()).insertNodeInto(new DefaultMutableTreeNode("Test"), node, node.getChildCount()); tree.expandPath(tree.getSelectionPath()); } else if (e.getSource() == delItem) { if (node.isRoot()) { return; } ((DefaultTreeModel) tree.getModel()).removeNodeFromParent(node); } else if (e.getSource() == editItem) { tree.startEditingAtPath(tree.getSelectionPath()); } } public static void main(String[] args) { TreePopupMenu frame = new TreePopupMenu(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }
相关推荐
swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3...
使用Swing-inspector,开发者可以: 1. **快速定位元素**:通过简单的界面交互,即可找到UI元素在代码中的定义,无需在大量的代码中手动搜索。 2. **查看组件属性**:获取组件的详细信息,如大小、位置、颜色、字体...
swing-layout-1.0.4.jar是org.jdesktop.layout,org.jdesktop.layout.GroupLayout类的工具jar包
在Eclipse中,使用`swing-layout-1.0.jar`库文件可以提升Java Swing应用的界面设计效率和用户体验。开发者可以通过引入这个库,利用其提供的高级布局管理器和辅助工具,创建出更美观、更灵活的用户界面。同时,这也...
这个例子也使用`MouseListener`监听鼠标事件,但使用`mouseReleased`方法,因为对于Swing组件,右键释放会触发弹出菜单。 ```java addMouseListener(new MouseAdapter() { public void mouseReleased(MouseEvent e...
这使得开发者可以在同一应用程序中同时使用Swing和SWT的优点,比如利用Swing的可移植性和SWT的高性能。 描述中提到了"swt开发需要的jar包,32位。需要在32为浏览器中使用",这意味着这个库是针对32位系统的,如果你...
使用"aspect-swing-worker-1.1.jar",开发者可以编写出更加健壮、响应更迅速的Swing应用,同时保持代码的整洁和模块化。在实际项目中,正确地集成和利用这个库,能够有效地提升用户体验,减少因为UI卡顿带来的用户...
本文将深入探讨“drag-drop-folder-tree.rar”这个压缩包所包含的资源,它提供了一个强大的动态树视图,支持节点的拖放操作,并且允许用户通过右键点击进行交互。 首先,"Tree 菜单"指的是在图形用户界面中用于展示...
ScalaSwingTree.zip,scala swing的jtree componenttree组件的scala swing包装器。镜像https://git.iem.at/sciss/scalaswingtree
swing-Java游戏.zipswing-Java游戏.zipswing-Java游戏.zip swing-Java游戏.zipswing-Java游戏.zipswing-Java游戏.zip swing-Java游戏.zipswing-Java游戏.zipswing-Java游戏.zip swing-Java游戏.zipswing-Java游戏....
基于java的开发源码-swing-explorer(Swing开发辅助工具).zip 基于java的开发源码-swing-explorer(Swing开发辅助工具).zip 基于java的开发源码-swing-explorer(Swing开发辅助工具).zip 基于java的开发源码-swing-...
Exceptionin thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/jdesktop/swingworker/SwingWorker ... at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) at java.awt.EventQueue...
本资源“java右键菜单源码”可能是提供了一个实现这种功能的示例代码库,帮助开发者理解如何在Java Swing或JavaFX中创建和使用右键菜单。 在Java Swing中,右键菜单主要通过JPopupMenu类来实现。下面我们将深入探讨...
Lucene索引查看工具 Luke。Luke 是查询LUCENE索引文件的工具, 而且用 Luke 的Search可以做查询。Luke is a handy development and diagnostic to Lucene.
swing-layout-1.0.4.jar是java用于图形界面swing开发的jar包
1. 可以用来作为学习swing的辅助工具 2. 可以作为你没有思路时的一盏灯塔 3. 使用方式 java -jar swing-tips-helper.jar ,如果你需要源码及资源及更多详细介绍参考该地址 ...
Java Swing是Java标准库中的一个组件,用于构建桌面应用程序用户界面。...通过实践和使用Swing-explorer,开发者不仅可以提升Swing应用的开发速度,还能增强对GUI设计的理解,创建出更加美观和用户友好的桌面应用。
内含三个java图像处理和界面开发必备的三个jar包,swing-lauout-1.0.jar \ metadata-extractor-2.7.0.jar \ xmpcore-5.1.2.jar