Java Swing中使用双击事件

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

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

直接在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);

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航