Java Swing中使用双击事件

今天自己写个小程序碰到了这个问题,在网上搜了一下人家的思路,整理了一下代码可以运行,感觉不错!
直接在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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值