如何实现让Java Label控件触发事件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何实现让Java Label控件触发事件相关的知识,希望对你有一定的参考价值。

之前远标老师教过,你看下下面写的行不行
1、现在我需要在一个label控件上定义一个点击事件,打开产生一个新的浏览器窗口。
2、Java JDK中的Label 类本身并不提供事件处理的方法,但应该注意到它是Component类的子类,从而可以通过如下的方法来完成,同时应该处理mouse事件较符合要求。
3、源程序的代码如下:(已经调试通过)
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.net.*;
public class Applet1 extends Applet implements MouseListener

Canvas cv;
public void init()

initForm();

private final Label clickLabel = new Label("hello");
private URL url;
public void mouseClicked(MouseEvent e)

try

if(e.getSource() == clickLabel)

url = new URL("http://www.yahoo.com");
getAppletContext().showDocument(url,"new");


catch(MalformedURLException exc)

this.showStatus("Invalid URL: " + url);


public void mousePressed(MouseEvent e)


public void mouseReleased(MouseEvent e)


public void mouseEntered(MouseEvent e)


public void mouseExited(MouseEvent e)


void initForm()

clickLabel.addMouseListener(this);
this.add(clickLabel);

参考技术A 实现MouseListener接口.
新增一个专门的"鼠标监听器"类,或者直接在你现有的类中实现"鼠标监听器".具体做法是在类声明语句中implements MouseListener.如下:
public class MouseAdp implements MouseListener

public MouseAdp()

public void mouseClicked(MouseEvent e)
/**鼠标点击事件(包括按下和弹起两个动作)处理方法.**/
System.out.println("你点了我!");


public void mouseEntered(MouseEvent e)
/**鼠标移到组件上方法时事件处理方法.**/

public void mouseExited(MouseEvent e)
/**鼠标移开组件时事件处理方法.**/

public void mousePressed(MouseEvent e)
/**鼠标在组件上按下(但没弹起)时事件处理方法.**/

public void mouseReleased(MouseEvent e)
/**鼠标在组件上弹起事件处理方法.**/



然后在你的JLabel实例上,作用这个监听器,如:
JLabel lab = new JLabel("点我");
lab.addMouseListener(new MouseAdp());
参考技术B 给Laber对象,添加事件监听器,并重写事件方法。

new JLabel().addActionListerner(public void actionPerformed()
// 事件具体操作代码

);本回答被提问者采纳

.net中如何动态改变Label控件的位置

我在Winform中有一个Label控件 我想要它随着窗体的Resize而动态调整在窗体中的位置 本来我打算在Form的Resize事件中 将Label.Location.X和Label.Location.Y的值 设成宽度和高度的一半 来使它居中 但是编译时报错说Location不能赋值 不是变量 那请问 我应该怎么做来达到我想要的要求呢

调整窗口大小,让控件的位置动态调整,不是靠Resize事件中手动设置控件的位置,
你以前是学vb的吗?vb调整窗口大小,需要手动在Resize事件中手动设置控件的位置,.net有更智能的操作,

选中控件,右键属性,找到【Anchor】属性,这个属性就是设置控件随窗体大小动态调整位置的属性,点开右边的下拉框,可以看到一个方块四周有四个块,默认选中的是上面和左边的块,这表明:调整窗体时,上边距和左边距始终保持不变。同样,可以设置左,右,上,下的块,使控件对应的边距随窗体大小改变而改变,

ps:设置控件的位置,是这样设置的:
Label.Location = new Point(20,20);
参考技术A   vb调整窗口大小,需要手动在Resize事件中手动设置控件的位置,.net有更智能的操作。
  选中控件,右键属性,找到【Anchor】属性,这个属性就是设置控件随窗体大小动态调整位置的属性,点开右边的下拉框,可以看到一个方块四周有四个块,默认选中的是上面和左边的块,这表明:调整窗体时,上边距和左边距始终保持不变。同样,可以设置左,右,上,下的块,使控件对应的边距随窗体大小改变而改变,
  ps:设置控件的位置,是这样设置的:Label.Location = new Point(20,20)。
参考技术B .net 解决不了这个问题,窗口的resize时间是客户端发生的。.net服务端根本无法获得客户端窗口重画的事件。你这个问题的解决只能靠js来解决。

window 对象好像有个onresizeend事件 ,在这里面定位到你的标签 然后用css控制他的位置试试吧

以上是关于如何实现让Java Label控件触发事件的主要内容,如果未能解决你的问题,请参考以下文章

javascript 如何实现点击按钮让它回退到前一页面。具体怎么实现。在线等。

win32如何触发一个窗口中listcontrol控件的单击事件?

.net中如何动态改变Label控件的位置

WPF中如何实现重叠的按钮点击事件同时触发

页面按钮如何触发声音事件?

请问如何让timer控件每过一秒钟触发一次?