今天自己写个小程序碰到了这个问题,在网上搜了一下人家的思路,整理了一下代码可以运行,感觉不错!
直接在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);
}
}
