服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

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);
  }
  }




扫描关注微信公众号