技术开发 频道

Java Swing中使用双击事件

  【IT168 技术文档】  

  今天自己写个小程序碰到了这个问题,在网上搜了一下人家的思路,整理了一下代码可以运行,感觉不错!

  直接在JBuilder中新建一个应用程序,至于具体步骤就不描述了,此代码没有main函数无法直接运行。下面我贴出在Frame1中的代码:

  import java.awt.*;   import java.awt.event.*;   import javax.swing.*;   import com.borland.jbcl.layout.*;   import java.util.Date;   public class Frame1   extends JFrame {   JPanel contentPane;   BorderLayout borderLayout1 = new BorderLayout();   JPanel jPanel1 = new JPanel();   XYLayout xYLayout1 = new XYLayout();   JScrollPane jScrollPane1 = new JScrollPane();   JList jList1 = new JList();   //初始化的JList中的数据   String[] strData = {   "One", "Tow", "Three"};   //保存点击按钮的时间   long clickTime = 0;   //Construct the frame   public Frame1() {   enableEvents(AWTEvent.WINDOW_EVENT_MASK);   try {   jbInit();   }   catch (Exception e) {   e.printStackTrace();   }   }   //Component initialization   private void jbInit() throws Exception {   contentPane = (JPanel)this.getContentPane();   contentPane.setLayout(borderLayout1);   this.setSize(new Dimension(532, 468));   this.setTitle("Frame Title");   jPanel1.setLayout(xYLayout1);   jList1.addMouseListener(new Frame1_jList1_mouseAdapter(this));   contentPane.add(jPanel1, BorderLayout.CENTER);   jPanel1.add(jScrollPane1, new XYConstraints(18, 34, 209, 326));   jScrollPane1.getViewport().add(jList1, null);   jList1.setListData(strData);   }   //Overridden so we can exit when window is closed   protected void processWindowEvent(WindowEvent e) {   super.processWindowEvent(e);   if (e.getID() == WindowEvent.WINDOW_CLOSING) {   System.exit(0);   }   }   //具体实现按钮双击的功能的方法, 很简单的算法,不做解释了   public boolean checkClickTime() {   long nowTime = (new Date()).getTime();   if ( (nowTime - clickTime) < 300) {   clickTime = nowTime;   return true;   }   clickTime = nowTime;   return false;   }   void jList1_mouseReleased(MouseEvent e) {   //判断是否双击,是的话写你要实现的功能   if (checkClickTime()) {   System.out.println("Click Double");   }   }   }   class Frame1_jList1_mouseAdapter   extends java.awt.event.MouseAdapter {   Frame1 adaptee;   Frame1_jList1_mouseAdapter(Frame1 adaptee) {   this.adaptee = adaptee;   }   public void mouseReleased(MouseEvent e) {   adaptee.jList1_mouseReleased(e);   }   }
0
相关文章