`

JTree添加鼠标事件

 
阅读更多

package org.dm.swingTest;

 

import java.awt.EventQueue;

import java.awt.event.InputEvent;

 

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JTree;import javax.swing.border.EmptyBorder;

import javax.swing.event.TreeSelectionEvent;

import javax.swing.event.TreeSelectionListener;

import javax.swing.tree.DefaultMutableTreeNode;

import javax.swing.JScrollPane;

import javax.swing.JTextField;

 

public class AppDemo extends JFrame {

 

 private JPanel contentPane;

 private JTextField textField;

 public static void main(String[] args) {

  EventQueue.invokeLater(new Runnable() {

   public void run() {

    try {

     AppDemo frame = new AppDemo();

     frame.setVisible(true);

    } catch (Exception e) {

     e.printStackTrace();

    }

   }

  });

 }

 

 public AppDemo() {

  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  setBounds(100, 100, 450, 300);

  setTitle("测试");

  contentPane = new JPanel();

  contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

  setContentPane(contentPane);

  contentPane.setLayout(null);

    JScrollPane scrollPane = new JScrollPane();

  scrollPane.setBounds(30, 20, 196, 217);

  contentPane.add(scrollPane);

    final JTree tree = new JTree();

  scrollPane.setViewportView(tree);    textField = new JTextField();

  textField.setBounds(252, 35, 172, 27);

  contentPane.add(textField);

  tree.addTreeSelectionListener(new TreeSelectionListener() {

   public void valueChanged(TreeSelectionEvent e) {

    DefaultMutableTreeNode note = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();

    String name = note.toString();//获得这个结点的名称

    textField.setText(name);

   }

  });

  //添加鼠标事件

  tree.addMouseListener(new java.awt.event.MouseAdapter() {

      public void mouseClicked(java.awt.event.MouseEvent evt) {

//        默认单击鼠标一下

//          if(evt.getClickCount()==1){

//             System.out.println("一下");

//          }

     //点击鼠标左键两下

//      1 左键

//      2 中键(Sun Mouse)

//      3 右键

          if(evt.getModifiers()==InputEvent.BUTTON1_MASK && evt.getClickCount()==2) {

              System.out.println("两下");

          }

      }

  });

 }

}

分享到:
评论

相关推荐

    JTree的例子,可以拖动节点

    在实际应用中,你可能需要根据具体需求进行一些调整,例如限制拖放的类型、处理拖放事件的复杂逻辑、或者添加额外的用户反馈。总的来说,理解和实现`JTree`的拖放功能对于任何Java Swing开发者来说都是一个重要的...

    JTree

    `JTree` 支持多种类型的监听器,如 `TreeSelectionListener` 可以监听用户选择的改变,`TreeModelListener` 可以监听模型的变化,`TreeMouseListener` 和 `TreeKeyListener` 分别处理鼠标和键盘事件。 ### 功能特性...

    JTree 需要树的可以研究下

    `JTree`支持多种事件监听器,如`TreeSelectionListener`(用于监听节点选择变化)、`TreeModelListener`(用于监听模型变化)和`MouseListener`(用于处理鼠标事件)。这些监听器可以帮助我们响应用户与树交互的...

    Swing-JTree.rar_jtree_jtree Demo_swing 树

    4. **事件监听**:可以添加TreeSelectionListener、TreeModelListener等监听器,监听用户的操作和数据的改变,实现相应的响应。 在“Swing JTree.doc”文档中,可能会详细讲解以下几个方面: 1. **创建JTree**:...

    jtree树应用

    JTree支持多种事件监听器,包括: - `TreeSelectionListener`:监听节点选择变化,当用户选择或取消选择节点时触发。 - `TreeModelListener`:监听树模型的变化,如添加、删除或更改节点。 - `MouseListener`和`...

    JTree2.0 目录树

    - **添加到容器**:将JTree添加到JFrame、JPanel等容器中。 例如: ```java DefaultMutableTreeNode root = new DefaultMutableTreeNode("根节点"); root.add(new DefaultMutableTreeNode("子节点1")); root.add...

    java中JTree的简单应用

    - `MouseListener`和`MouseMotionListener`:处理鼠标点击和移动事件。 4. **样式与图标**: - 可以通过`setCellRenderer()`设置自定义的渲染器来改变节点的显示样式,包括文字颜色、字体等。 - `setClosedIcon...

    JTable_JTree.rar_JTable Java_JTree JTable_jtree

    4. **布局管理**:将`JTable`和`JTree`添加到容器(如`JFrame`或`JPanel`),并使用布局管理器进行布局。 5. **渲染自定义组件**:如果需要自定义单元格或节点的显示方式,可以实现`TableCellRenderer`或`...

    swing界面设计之JTree

    - **给JTree添加右键弹出菜单**:可以使用`JPopupMenu`来创建上下文菜单。 - **关于JTree的展开**:控制树节点的展开与折叠,包括默认展开所有节点等操作。 - **如何遍历JTree**:使用递归算法或`Enumeration`接口...

    treea.rar_jtree_tree java

    6. **默认行为**: `JTree` 有预定义的键盘快捷键和鼠标操作,比如使用空格键选择节点,使用左右箭头展开或折叠节点。 7. **自定义渲染**: 通过实现 `TreeCellRenderer`,你可以定制节点的显示方式,包括字体、颜色...

    jtree和QQ项目\带有右键的树(数据库)

    当用户在`JTree`上点击右键时,可以通过监听鼠标事件并显示`JPopupMenu`来提供一系列与选中节点相关的操作。例如,用户可以右键点击某个表节点,弹出的菜单中包含“查看数据”、“编辑表结构”、“删除表”等选项。...

    所支持拖拽功能的Swing-JTree代码

    为了启用拖放功能,我们需要为JTree添加`TransferHandler`,这是一个处理数据转移的核心类: ```java jTree.setTransferHandler(new TreeTransferHandler()); ``` `TreeTransferHandler`需要实现`importData`和`...

    instrument/JTree-开源

    为了解决这些问题,开源社区提供了一个名为`instrument/JTree`的扩展库,它为JTree添加了这些额外的功能,提升了开发效率和用户体验。 `instrument/JTree`库的核心特性包括: 1. **拖放支持**:用户可以直接通过...

    高级swing组件PPT

    - **事件处理**:JTree支持鼠标和键盘事件,如点击、双击、拖放等,开发者可以通过添加TreeSelectionListener监听节点选择变化,TreeMouseListener监听鼠标操作等。 - **节点操作**:可以添加、删除、重命名树节点...

    Jtable和JTree的写法示例代码

    接着,添加了鼠标监听器,以便捕获单元格的点击事件。 JTable的数据显示通过`addData`方法完成,但在这个示例中并未给出具体实现。通常,`addData`会涉及向TableModel添加数据,例如: ```java private void add...

    Java目录树控件

    为了处理用户的交互,如点击、拖放等,你需要为`JTree`添加事件监听器。`TreeSelectionListener`可以监听节点选择变化,而`MouseListener`则可以处理鼠标点击事件。 7. **性能优化**: 当文件系统非常大时,一次...

    swing中Tree与滚动条用法实例分析

    `MouseListener`用于监听用户对`JTree`的鼠标点击事件。在这个例子中,我们创建了一个`MouseAdapter`子类,并重写了`mouseClicked`方法,以便在点击树节点时更新文本框`jtf`的内容。 ```java tree.addMouseListener...

    java实现系统目录树控件.zip

    - `DefaultMutableTreeNode`: 这是`JTree`的基础节点类,它允许添加、删除和修改子节点。 - `DefaultTreeModel`: 作为树模型,它持有`DefaultMutableTreeNode`实例,并管理它们之间的关系。 2. **填充目录树** -...

Global site tag (gtag.js) - Google Analytics