java中“label”文字如何添加点击、执行反应?

java中“label”文字如何添加点击、执行反应?,第1张

实现MouseListener接口.\x0d\x0a新增一个专门的"鼠标监听器"类,或者直接在你现有的类中实现"鼠标监听器".具体做法是在类声明语句中implements MouseListener.如下:\x0d\x0apublic class MouseAdp implements MouseListener{\x0d\x0a\x0d\x0apublic MouseAdp(){}\x0d\x0a\x0d\x0apublic void mouseClicked(MouseEvent e) {\x0d\x0a/**鼠标点击事件(包括按下和d起两个动作)处理方法.**/\x0d\x0aSystem.out.println("你点了我!")\x0d\x0a}\x0d\x0a\x0d\x0apublic void mouseEntered(MouseEvent e) {\x0d\x0a/**鼠标移到组件上方法时事件处理方法.**/}\x0d\x0a\x0d\x0apublic void mouseExited(MouseEvent e) {\x0d\x0a/**鼠标移开组件时事件处理方法.**/}\x0d\x0a\x0d\x0apublic void mousePressed(MouseEvent e) {\x0d\x0a/**鼠标在组件上按下(但没d起)时事件处理方法.**/}\x0d\x0a\x0d\x0apublic void mouseReleased(MouseEvent e) {\x0d\x0a/**鼠标在组件上d起事件处理方法.**/}\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0a然后在你的JLabel实例上,作用这个监听器,如:\x0d\x0aJLabel lab = new JLabel("点我")\x0d\x0alab.addMouseListener(new MouseAdp())

UILabel *l = [[UILabel alloc] initWithFrame:CGRectMake(60, 0, listV.frame.size.width - 60, listV.frame.size.height)]

l.userInteractionEnabled=YES

UITapGestureRecognizer *labelTapGestureRecognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(labelTouchUpInside:)]

[l addGestureRecognizer:labelTapGestureRecognizer]

-(void) labelTouchUpInside:(UITapGestureRecognizer *)recognizer{

UILabel *label=(UILabel*)recognizer.view

NSLog(@"%@被点击了",label.text)

using System

using System.Collections.Generic

using System.Linq

using System.Web

using System.Web.UI

using System.Web.UI.WebControls

using System.ComponentModel

namespace CustomControls

{

[DefaultProperty("Text")]

[ToolboxData("<{0}:ClickLabel runat=server></{0}:ClickLabel>")]

public class ClickLabel : WebControl, IPostBackEventHandler

{

[Bindable(true)]

[Category("Appearance")]

[DefaultValue("")]

[Localizable(true)]

public string Text

{

get

{

String s = (String)ViewState["Text"]

return ((s == null) ? "[" + this.ID + "]" : s)

}

set

{

ViewState["Text"] = value

}

}

protected override void RenderContents(HtmlTextWriter output)

{

output.Write(Text)

}

public event EventHandler Click

public ClickLabel()

{

}

protected void OnClick()

{

if (Click != null)

{

Click(this, new EventArgs())

}

}

//When postback is caused by this control, raise the event

void IPostBackEventHandler.RaisePostBackEvent(string eventArgument)

{

OnClick()

}

//Add onclick attribute to cause a postback when Label is clicked

protected override void AddAttributesToRender(HtmlTextWriter writer)

{

base.AddAttributesToRender(writer)

writer.AddAttribute(HtmlTextWriterAttribute.Onclick, Page.ClientScript.GetPostBackEventReference(this, "OnClick"))

}

}

}

我帮你写个,将以上代码编译成一个.DLL文件,就有一个带有单击事件的Label控件了

编译方法:

打开studio 随便新建一个项目,注意是项目,就会自动生成一个Default.aspx,和Default.aspx.cs两个文件,将以上代码复盖Default.aspx.cs的代码,然后可以点击项目菜单栏属性,可以修改程序集名和命名空间的名字例如:之后点击生成下的生成选择就会在你的BIN文件里生成一个dll

将它复制到你项目文件里就可以引用了

<%@ Register Assembly="ClickLabel" Namespace="CustomControls" TagPrefix="fa" %>

调用控件

<fa:ClickLabel   Font-Size="15px" ID="ClickLabel5"  OnClick="label_Click" runat="server" Text="确 定" />

后台代码

public void label_Click(object sender, EventArgs e)

{

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11957443.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存