java - Double clicking on a file in FileTreeModel -


i comfortable java swing api. after googling sometime, have got below program working fine far. want is, on double clicking on file in tree, below function executed.

can suggest me how can add listener understand double click event? example help.

public boolean getsomedata(string filename){   //i make jdbc call here     } 

my working program below,

/*http://www.chka.de/swing/tree/filetreemodel.html */ import javax.swing.jframe; import javax.swing.jscrollpane; import javax.swing.jtree; import javax.swing.tree.treemodel; import javax.swing.tree.treepath; import javax.swing.event.treemodellistener; import javax.swing.event.treemodelevent; import javax.swing.event.eventlistenerlist; import java.awt.event.windowadapter; import java.awt.event.windowevent; import java.util.list; import java.util.arraylist; import java.util.map; import java.util.hashmap; import java.io.file; import java.io.serializable; import java.io.objectoutputstream; import java.io.objectinputstream;    public class filetreemodel     implements treemodel, serializable, cloneable {     protected eventlistenerlist listeners;      private static final object leaf = new serializable() { };      private map map;        private file root;       public filetreemodel(file root)     {         this.root = root;          if (!root.isdirectory())             map.put(root, leaf);          this.listeners = new eventlistenerlist();          this.map = new hashmap();     }       public object getroot()     {         return root;     }      public boolean isleaf(object node)     {         return map.get(node) == leaf;     }        public int getchildcount(object node)     {         list children = children(node);          if (children == null)             return 0;          return children.size();     }        public object getchild(object parent, int index)     {         return children(parent).get(index);     }      public int getindexofchild(object parent, object child)     {         return children(parent).indexof(child);     }       protected list children(object node)     {         file f = (file)node;          object value = map.get(f);          if (value == leaf)             return null;          list children = (list)value;          if (children == null)         {             file[] c = f.listfiles();              if (c != null)             {                 children = new arraylist(c.length);                  (int len = c.length, = 0; < len; i++)                 {                     children.add(c[i]);                     if (!c[i].isdirectory())                         map.put(c[i], leaf);                 }             }             else                 children = new arraylist(0);              map.put(f, children);               }          return children;     }        public void valueforpathchanged(treepath path, object value)     {     }       public void addtreemodellistener(treemodellistener l)     {         listeners.add(treemodellistener.class, l);     }      public void removetreemodellistener(treemodellistener l)     {         listeners.remove(treemodellistener.class, l);     }      public object clone()     {         try         {             filetreemodel clone = (filetreemodel)super.clone();              clone.listeners = new eventlistenerlist();              clone.map = new hashmap(map);              return clone;         }         catch (clonenotsupportedexception e)         {             throw new internalerror();         }     }       public static void main(string[] args)     {         if (args.length != 1)         {             system.err.println("usage: java filetreemodel path");             system.exit(1);         }          file root = new file(args[0]);          if (!root.exists())         {             system.err.println(root+ ": no such file or directory");             system.exit(2);         }          jtree tree = new jtree(new filetreemodel(root));          jframe f = new jframe(root.tostring());          f.addwindowlistener(new windowadapter()         {             public void windowclosing(windowevent e)             {                 system.exit(0);             }         });          f.getcontentpane().add(new jscrollpane(tree));          f.pack();         f.setvisible(true);     } } 

i think should add mouselistener , implement mousepressed method

mouselistener ml = new mouseadapter() {     public void mousepressed(mouseevent e) {         if(e.getclickcount() == 2) {              getsomedata(...);         }     } }; tree.addmouselistener(ml); 

Comments

Popular posts from this blog

Why does Ruby on Rails generate add a blank line to the end of a file? -

keyboard - Smiles and long press feature in Android -

node.js - Bad Request - node js ajax post -