Double-click a JTree node and get its name

后端 未结 4 516
忘掉有多难
忘掉有多难 2020-12-11 16:39

How do I double-click a JTree node and get its name?

If I call evt.getSource() it seems that the object returned is a JTree. I can\'t cast it to a Defa

4条回答
  •  Happy的楠姐
    2020-12-11 17:08

    My example. We can detect Double-click with delay.

    public class TreeListener extends MouseAdapter{
        private JTree _Tree;
        private boolean singleClick  = true;
        private int doubleClickDelay = 300;
        private Timer timer;    
    
        public TreeListener(JTree tree)
        {
            this._Tree = tree;
            ActionListener actionListener = new ActionListener() {
    
                public void actionPerformed(ActionEvent e) {                
                    timer.stop();
                    if (singleClick) {
                        singleClickHandler(e);
                    } else {
                        try {
                            doubleClickHandler(e);
                        } catch (ParseException ex) {
                            Logger.getLogger(ex.getMessage());
                        }
                    }
                }
            }; 
            timer = new javax.swing.Timer(doubleClickDelay, actionListener);
            timer.setRepeats(false);
        }
    
        public void mouseClicked(MouseEvent e) { 
            if (e.getClickCount() == 1) {
                singleClick = true;
                timer.start();
            } else {
                singleClick = false;
            }
        }
    
         private void singleClickHandler(ActionEvent e) {
            System.out.println("-- single click --");
        }
    
         private void doubleClickHandler(ActionEvent e) throws ParseException {         
            System.out.println("-- double click -- id=");      
    
        }     
    }
    

提交回复
热议问题