服务热线: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);
    }
    }

扫描关注微信公众号