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