当前位置:首页 > 前端设计 > 正文

eventhandler(EventHandler继承)

eventhandler(EventHandler继承)

这篇文章给大家聊聊关于eventhandler,以及EventHandler继承对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。java中监听事件怎么设置一.使用...

这篇文章给大家聊聊关于eventhandler,以及EventHandler继承对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

java中监听事件怎么设置

一.使用内部类,一个个设置Button然后创建一个内部类,用ActionPerformed来实现按钮事件内容;

二.使用lambda表达式,但是这个方法比较繁琐,需要创建一个内部类,其实有更简单的方法,比如使用lambda表达式,而不需要创建内部类,我们可以把创建按钮和响应的部分放到一个方法里面;

三.使用匿名对象,当然使用lambda表达式肯定不是非用不可的,以前的方法是使用匿名对象,也是可以的;

四.自身框架做事件源容器,其实可以直接用JFrame本身做事件源容器,使ButtonFrame支持ActionListener接口,需要把按钮定义在属性中,然后在构造函数中添加的监听器中直接使用this像这样:greenButton.addActionListener(this);然后在自己类中实现ActionPerformed方法,使用Objectsource=e.getSource();获取到事件的更新源,然后用判断语句来判断是哪个按钮的事件依次执行事件操作;

五.使用EventHandler指定事件监听器,使用这样的方法EventHandler.create(ActionListener.class,frame,"loadData")创造一个ActionListener,这种方法用lambda表达式就等同于event->frame.localData();

iView的分页方法on-change事件怎么用

在设计自定义分页控件的时候,在分页控件类中定义一个当页码改变时触发的事件。

在类中判断事件是否被外部注册,如果已注册,则将事件的处理交给事件注册者。

publiceventEventHandlerOnPagerChanged;//判断if(OnPagerChanged!=null)

java链接red5的地址怎么设置

代码示例:

importjava.util.ArrayList;

importjava.util.Map;

importorg.red5.io.utils.ObjectMap;

importorg.red5.server.api.event.IEvent;

importorg.red5.server.api.event.IEventDispatcher;

importorg.red5.server.api.service.IPendingServiceCall;

importorg.red5.server.api.service.IPendingServiceCallback;

importorg.red5.server.net.rtmp.INetStreamEventHandler;

importorg.red5.server.net.rtmp.RTMPClient;

importorg.red5.server.net.rtmp.RTMPConnection;

importorg.red5.server.net.rtmp.codec.RTMP;

importorg.red5.server.net.rtmp.event.Notify;

publicclassRtmpClientNewextendsRTMPClientimplements

INetStreamEventHandler,IPendingServiceCallback,IEventDispatcher{

Stringhost="111.92.237.33";

Stringapp="chainGunSyncService";

intport=1935;

publicRtmpClientNew(){

super();

Map<String,Object>map=makeDefaultConnectionParams(host,

1935,"chainGunSyncService");

connect(host,1935,map,this,newString[]{"admin","",

"111.92.237.33"});

}

@Override

publicvoiddispatchEvent(IEventarg0){

//TODOAuto-generatedmethodstub

}

@Override

publicvoidresultReceived(IPendingServiceCallcall){

//TODOAuto-generatedmethodstub

Objectresult=call.getResult();

if(resultinstanceofObjectMap){

if("connect".equals(call.getServiceMethodName())){

createStream(this);

}

}else{

if("createStream".equals(call.getServiceMethodName())){

if(resultinstanceofInteger){

IntegerstreamIdInt=(Integer)result;

//intstreamId=streamIdInt.intValue();

//publish(streamId,"testgio2","live",this);

invoke("getRoomsInfo",this);

}else{

disconnect();

}

}elseif("getRoomsInfo".equals(call.getServiceMethodName())){

ArrayList<String>list=(ArrayList<String>)result;

for(inti=0;i<list.size();i++){

System.out.println(list.get(i));

}

}

}

}

@Override

publicvoidonStreamEvent(Notifyarg0){

//TODOAuto-generatedmethodstub

}

@Override

publicvoidconnectionOpened(RTMPConnectionconn,RTMPstate){

//TODOAuto-generatedmethodstub

//System.out.println("connectionOpened");

super.connectionOpened(conn,state);

}

p

event事件类型

event同上。fn是事件处理函数,固定有两个参数,第一个是被监听对象的引用,第二个是传递过来的数据表。source是被监听对象,此参数可以为空。如果为空,则系统会默认source是监听对象自身。也就是自己监听自己。这在饥荒中非常常见。需要特别注意的是,可以通过重复使用ListenForEvent设置多个监听器,即使其参数完全一致也可以。

有时候我们希望监听器只使用若干次,之后不再监听。那么,可以使用RemoveEventCallback(event,fn)来移除监听器。需要注意的是,这里的fn必须首先由ListenForEvent注册过,如果fn未注册,则会崩溃报错。这个函数同样可以重复使用,可以看作是ListenForEvent的逆函数。

以上的几个函数都是EntityScript类的成员函数。所以实际调用时,是这样写的:对象引用名:PushEvent(event,data)或者对象引用名:ListenForEvent(event,fn,source)或者对象引用名:RemoveEventCallback(event,fn)

上面所提到的ListenForEvent是手动设置监听器,但其实还有另外一种特殊的,格式化了的监听器,EventHandler,参数只有event名和fn,没有source(因为已经默认了source就是监听对象自身了)。这个监听器通常是在StateGraph中被使用,用于转换prefab的State,这里不多提,等到以后讲StateGraph时再说。

如何在DataGrid控件中实现自定义分页

在一般情况下,DataGrid控件每次实现翻页操作时,都会将数据源中的数据重新调用一次,当数据中数据很多时,这样做就会很浪费系统资源和降低程序的执行效率.这时候我们一般通过自定义分页来解决这个问题.DataGrid控件的AllowCustomPaging属性用来获取或设置DataGrid控件是否允许自定义分页;VirtualItemCoun属性用来获取或设置在使用自定义分页时DataGrid中实际的项数.要实现自定义分页,必须将AllowPaging与AllowCustomPaging属性都设置为"True".在DataGrid中要实现自定义分页的关键是,使该控件仅仅调用当前显示所需要的数据源数据,在下面的例子中通过CurrentPageIndex和PageSize属性的值,在数据绑定时只取当前页需要的数据.(1)页面代码:复制代码代码如下:<%@Pagelanguage="c#"Codebehind="Main.aspx.cs"AutoEventWireup="false"Inherits="SissonDemo.Main"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN"><HTML><HEAD><title>Main</title><metaname="GENERATOR"Content="MicrosoftVisualStudio.NET7.1"><metaname="CODE_LANGUAGE"Content="C#"><metaname="vs_defaultClientScript"content="JavaScript"><metaname="vs_targetSchema"content="http://schemas.microsoft.com/intellisense/ie5"></HEAD><bodyMS_POSITIONING="GridLayout"><formid="Form1"method="post"runat="server"><FONTface="宋体"><asp:DataGridid="DataGrid1"runat="server"Width="792px"Height="96px"AllowCustomPaging="True"AllowPaging="True"PageSize="5"><PagerStyleMode="NumericPages"></PagerStyle></asp:DataGrid></FONT></form></body></HTML>(2)后台代码:复制代码代码如下:usingSystem;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Web;usingSystem.Web.SessionState;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.HtmlControls;usingSystem.Data.SqlClient;namespaceSissonDemo{/**////<summary>///Main的摘要说明。///</summary>publicclassMain:System.Web.UI.Page{protectedSystem.Web.UI.WebControls.DataGridDataGrid1;intstartIndex=0;//用来保存当前页数据项的起始索引privatevoidPage_Load(objectsender,System.EventArgse){if(!IsPostBack){Bind();//初始化时进行数据绑定}}voidBind()//绑定数据方法{//定义数据库连接对象SqlConnectioncn=newSqlConnection("server=.;database=pubs;uid=sa;pwd=");//创建数据适配对象SqlDataAdapterda=newSqlDataAdapter("selecttitle_id,title,type,pub_id,price,pubdatefromtitles",cn);//创建DataSet对象DataSetds=newDataSet();try{//从指定的索引开始取PageSize条记录.da.Fill(ds,startIndex,DataGrid1.PageSize,"CurDataTable");da.Fill(ds,"AllDataTable");//填充数据集合//设置DataGrid控件实际要显示的项数DataGrid1.VirtualItemCount=ds.Tables["AllDataTable"].Rows.Count;//进行数据绑定DataGrid1.DataSource=ds.Tables["CurDataTable"];DataGrid1.DataBind();}catch{Page.RegisterClientScriptBlock("","<script>alert('数据显示错误');</script>");}}Web窗体设计器生成的代码#regionWeb窗体设计器生成的代码overrideprotectedvoidOnInit(EventArgse){////CODEGEN:该调用是ASP.NETWeb窗体设计器所必需的。//InitializeComponent();base.OnInit(e);}/**////<summary>///设计器支持所需的方法-不要使用代码编辑器修改///此方法的内容。///</summary>privatevoidInitializeComponent(){this.DataGrid1.PageIndexChanged+=newSystem.Web.UI.WebControls.DataGridPageChangedEventHandler(this.DataGrid1_PageIndexChanged);this.Load+=newSystem.EventHandler(this.Page_Load);}#endregionprivatevoidDataGrid1_PageIndexChanged(objectsource,System.Web.UI.WebControls.DataGridPageChangedEventArgse){//设置DataGrid当前页的索引值为用户选择的页的索引DataGrid1.CurrentPageIndex=e.NewPageIndex;//取得当前页为止总共有多少条记录,以便在下一页就从该记录开始读取startIndex=DataGrid1.PageSize*DataGrid1.CurrentPageIndex;//取得绑定数据Bind();}}}在这段程序中,首先在数据绑定时,设置DataGrid控件的VirtualItemCoun属性值为查询结果集中的记录总数,然后取得当前页要显示的数据,初始化时当前页显示的数据为从取到的数据的零位置开始,到DataGrid控件的PageSize属性的设定值为止的数据记录数.在分页操作中重新定义了取得下一页数据时的数据项的开始索引值,然后调用数据绑定方法把取到的新数据和DataGrid控件重新绑定.

关于eventhandler,EventHandler继承的介绍到此结束,希望对大家有所帮助。

最新文章