「java监听机智」java实现事件监听

博主:adminadmin 2023-01-11 12:24:07 990

今天给各位分享java监听机智的知识,其中也会对java实现事件监听进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

Java键盘监听事件(急啊!)

把你的代码按照你的意思改动了一下,应该可以满足你的要求:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class KeyEventDemo extends JFrame implements ActionListener, KeyListener {

JTextField txt1;

JButton btnOK;

JPanel pnlMain;

public KeyEventDemo() {

pnlMain = new JPanel();

setContentPane(pnlMain);

txt1 = new JTextField(10);

btnOK = new JButton("确认");

txt1.addKeyListener(this); //应该是在 TextField 里添加键盘监听事件

btnOK.addActionListener(this);//在按钮上添加事件监听

pnlMain.setLayout(new BorderLayout());//添加布局器

pnlMain.add(txt1,BorderLayout.NORTH); //TextField 布局在上方

pnlMain.add(btnOK,BorderLayout.SOUTH); //Button 布局在下方

setTitle("好啊");

setSize(300, 200);

setVisible(true);//viersible() 函数应该放在最后

setDefaultCloseOperation(EXIT_ON_CLOSE);

}

public void keyTyped(KeyEvent e) { //6

char c = e.getKeyChar();

if (c == 'o') {

System.out.println("快捷键 " + e.getKeyChar() + " 按下" );

txt1.setText("收到,呵呵");

}else{

System.out.println("普通键 " + e.getKeyChar() + " 按下" );

}

}

public void actionPerformed(ActionEvent event){

System.out.println("按钮按下");

}

public void keyPressed(KeyEvent e) {} //函数要和接口 KeyListener 中定义的一摸一样

public void keyReleased(KeyEvent e) {} //函数要和接口 KeyListener 中定义的一摸一样

public static void main(String[] args) {

new KeyEventDemo();

}

}

额,抽象类其实就是定义了一些接口但又没有去实现的类,这些类定义了接口等它的子类来实现,如果它的子类没有实现这些接口,那么这些子类也是抽象类。抽象类是不能用 new 的方式产生的。

你似乎问错了,应该问接口是啥子东西,接口是。。。。一大堆的东西好难策清楚,看看下面的链接吧,会受益良多的:

java 自定义事件的触发及监听

JAVA事件响应机制

1,先自定义一个事件

public class MyEvent extends java.util.EventObject{

public MyEvent(Object source)

{

super(source);

}

}

2,再自定义一个监听器

public class MyListener implements java.util.EventListener{

//这里是当事件发生后的响应过程

public void EventActivated(MyEvent me)

{

System.out.println("事件已经被触发");

}

}

3,以下这个类为触发事件的事件源

public class MyObject {

private Vector vectorListeners=new Vector();

public synchronized void addMyListener(MyListener ml)

{

vectorListeners.addElement(ml);

}

public synchronized void removeMyListener(MyListener ml)

{

vectorListeners.removeElement(ml);

}

protected void activateMyEvent()

{

Vector tempVector=null;

MyEvent e=new MyEvent(this);

synchronized(this)

{

tempVector=(Vector)vectorListeners.clone();

for(int i=0;itempVector.size();i++)

{

MyListener ml=(MyListener)tempVector.elementAt(i);

ml.EventActivated(e);

}

}

}

//定义一个公用方法用于触发事件

public void test()

{

activateMyEvent();

}

}

4,测试类

public class Test {

public static void main(String[] args)

{

MyObject mo=new MyObject();

//注册该事件

mo.addMyListener(new MyListener());

//触发该事件

mo.test();

}

}

JAVA 怎么监听一个值

如果程序实现的话就在需要的地方用Junit的断言。

如果是想观察这个值在程序运行状态下的变化就只能用IDE的功能了,比如Eclipse的Debug可以观看值的变化,自己多设一些断点,或按步执行

怎样用JAVA来监听数据库里的变化

可以使用ContentObserver对象监听,如下:

public final void registerContentObserver(Uri uri, boolean notifyForDescendents, ContentObserver observer)

功能:为指定的Uri注册一个ContentObserver派生类实例,当给定的Uri发生改变时,回调该实例对象去处理。

参数:uri 需要观察的Uri(需要在UriMatcher里注册,否则该Uri也没有意义了)

notifyForDescendents 为false 表示精确匹配,即只匹配该Uri

为true 表示可以同时匹配其派生的Uri,举例如下:

假设UriMatcher 里注册的Uri共有一下类型:

1 、content://com.qin.cb/student (学生)

2 、content://com.qin.cb/student/#

3、 content://com.qin.cb/student/schoolchild(小学生,派生的Uri)

假设我们当前需要观察的Uri为content://com.qin.cb/student,如果发生数据变化的 Uri 为

content://com.qin.cb/student/schoolchild ,当notifyForDescendents为 false,那么该ContentObserver会监听不到,

但是当notifyForDescendents 为ture,能捕捉该Uri的数据库变化。

关于java监听机智和java实现事件监听的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。