1. java如何監聽所有按鈕
先定義一個監聽器al:
ActionListener al = new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
String str = btn1.getText();
field.setText(str);
}
};
然後所有button都調用addActionListener(al);這樣al就可以監聽所有button的點擊事件了.通過e.getSource()獲取哪個按鈕,然後獲取按鈕上的數字即可.
2. java圖形編程中有哪些常用的監聽
在此列舉四種方法:
自身類實現ActionListener介面,作為事件監聽器
通過匿名類處理
通過內部類處理
通過外部類處理
3. 如何用java實現自動監聽處理jsp頁面的
一、監聽域對象中屬性的變更的監聽器
域對象中屬性的變更的事件監聽器就是用來監聽 ServletContext, HttpSession, HttpServletRequest 這三個對象中的屬性變更信息事件的監聽器。
這三個監聽器介面分別是, HttpSessionAttributeListener 和,這三個介面中都定義了三個方法來處理被監聽對象中的屬性的增加,刪除和替換的事件,同一個事件在這三個介面中對應的方法名稱完全相同,只是接受的參數類型不同。
1.1、attributeAdded 方法
當向被監聽對象中增加一個屬性時,web容器就調用事件監聽器的attributeAdded方法進行響應,這個方法接收一個事件類型的參數,監聽器可以通過這個參數來獲得正在增加屬性的域對象和被保存到域中的屬性對象
各個域屬性監聽器中的完整語法定義為:
public void attributeAdded(ServletContextAttributeEvent scae)
public void attributeReplaced(HttpSessionBindingEvent hsbe)
public void attributeRmoved(ServletRequestAttributeEvent srae)
1.2、attributeRemoved 方法
當刪除被監聽對象中的一個屬性時,web容器調用事件監聽器的attributeRemoved方法進行響應
各個域屬性監聽器中的完整語法定義為:
public void attributeRemoved(ServletContextAttributeEvent scae)
public void attributeRemoved (HttpSessionBindingEvent hsbe)
public void attributeRemoved (ServletRequestAttributeEvent srae)
1.3、attributeReplaced 方法
當監聽器的域對象中的某個屬性被替換時,web容器調用事件監聽器的attributeReplaced方法進行響應
各個域屬性監聽器中的完整語法定義為:
public void attributeReplaced(ServletContextAttributeEvent scae)
public void attributeReplaced (HttpSessionBindingEvent hsbe)
public void attributeReplaced (ServletRequestAttributeEvent srae)
1.4、監聽器範例:
編寫監聽器監聽ServletContext域對象的屬性值變化情況,代碼如下:
package me.gacl.web.listener;
import java.text.MessageFormat;
import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.;
/**
* @ClassName: My
* @Description: ServletContext域對象中屬性的變更的事件監聽器
* @author: 孤傲蒼狼
* @date: 2014-9-11 下午10:53:04
*
*/
public class My implements
{
@Override
public void attributeAdded(ServletContextAttributeEvent scab) {
String str =MessageFormat.format(
"ServletContext域對象中添加了屬性:{0},屬性值是:{1}"
,scab.getName()
,scab.getValue());
System.out.println(str);
}
@Override
public void attributeRemoved(ServletContextAttributeEvent scab) {
String str =MessageFormat.format(
"ServletContext域對象中刪除屬性:{0},屬性值是:{1}"
,scab.getName()
,scab.getValue());
System.out.println(str);
}
@Override
public void attributeReplaced(ServletContextAttributeEvent scab) {
String str =MessageFormat.format(
"ServletContext域對象中替換了屬性:{0}的值"
,scab.getName());
System.out.println(str);
}
}
在web.xml文件中注冊監聽器
<listener>
<description>My監聽器</description>
<listener-class>me.gacl.web.listener.My</listener-class>
</listener>
編寫Test.jsp測試頁面
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html>
<head>
<title>監聽器測試</title>
</head>
<body>
<%
//往application域對象中添加屬性
application.setAttribute("name", "孤傲蒼狼");
//替換application域對象中name屬性的值
application.setAttribute("name", "gacl");
//移除application域對象中name屬性
application.removeAttribute("name");
%>
</body>
</html>
運行結果如下:
從運行結果中可以看到,ServletContextListener監聽器成功監聽到了ServletContext域對象(application)中的屬性值的變化情況。
4. JAVA中設置鍵盤事件監聽者的方法是什麼
方法一:從控制台接收一個字元,然後將其列印出來
importjava.io.*;
publicstaticvoidmain(String[]args)throwsIOException{
System.out.print("EnteraChar:");
chari=(char)System.in.read();
System.out.println("yourcharis:"+i);
}
雖然此方式實現了從鍵盤獲取輸入的字元,但是System.out.read()只能針對一個字元的獲取,同時,獲取進來的變數的類型只能是char,當我們輸入一個數字,希望得到的也是一個整型變數的時候,我們還得修改其中的變數類型,這樣就顯得比較麻煩。
方法二:從控制台接收一個字元串,然後將其列印出來。在這個題目中,我們需要用到BufferedReader類和InputStreamReader類
importjava.io.*;
publicstaticvoidmain(String[]args)throwsIOException{
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
Stringstr=null;
System.out.println("Enteryourvalue:");
str=br.readLine();
System.out.println("yourvalueis:"+str);
}
這樣我們就能獲取我們輸入的字元串。
方法三:這種方法我認為是最簡單,最強大的,就是用Scanner類
importjava.util.Scanner;
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
System.out.println("請輸入你的姓名:");
Stringname=sc.nextLine();
System.out.println("請輸入你的年齡:");
intage=sc.nextInt();
System.out.println("請輸入你的工資:");
floatsalary=sc.nextFloat();
System.out.println("你的信息如下:");
System.out.println("姓名:"+name+" "+"年齡:"+age+" "+"工資:"+salary);
}
5. java如何監聽文本域內容
關於文本域內容的監 聽,API沒有直接的監 聽JTextField的文本內容變化的方法。而是通過一個Document介面對象來實現的。
參考代碼如下
jtf.getDocument().addDocumentListener(newDocumentListener(){
//監聽文本內容的插入事件;
publicvoidremoveUpdate(DocumentEvente){
//keyword=textField.getText();
}
//監聽文本內容的插入事件;
publicvoidinsertUpdate(DocumentEvente){
//keyword=textField.getText();
}
//監聽文本屬性的變化;
publicvoidchangedUpdate(DocumentEvente){
}
});
6. java監聽器原理
Java最新的事件處理方法是基於授權事件模型,事件源生成事件並將其發送至一個或多個監聽器,監聽器簡單地等待,直到它收到一個事件。一旦事件被接受,監聽器將處理這些事件,然後返回。
事件:在授權事件模型中,事件是一個描述事件源狀態改變的對象。 通過滑鼠、鍵盤與GUI界面直接或間接交互都會生成事件。如:按下一個按鈕、通過鍵盤輸入一個字元、選擇列表框中的一項、點擊一下滑鼠等。
事件源:事件源是一個生成事件的對象
一個事件源可能會生成不同類型的事件,事件源提供了一組方法,用於為事件注冊一個或多個監聽器。
每種事件的類型都有其自己的注冊方法。一般形式為:publicvoidadd<EventType>Listener(TypeListenere)
AWT採取的事件控制過程:監聽器對象屬於一個類的實例,這個類實現了一個特殊的介面,名為「監聽者介面」
事件源是一個對象,它可以注冊一個或多個監聽器對象,並向其發送事件對象。
事件源將在發生事件時向所有注冊的監聽器發送事件對象。
監聽器對象使用事件對象中的信息來確定它們對事件的響應
事件模型:
基於代理(授權)事件模型,事件處理是一個事件源授權到一個或者多個事件監聽器。其基本原理是:組件激發事件,事件監聽器監聽和處理事件,可以調用組件的add<EventType>Listener方法向組件注冊監聽器。把其加入到組件以後,如果組件激發了相應類型的事件,那麼定義在監聽器中的事件處理方法會被調用。
此模型主要由以三種對象為中心組成
事件源由它來激發產生事件
是產生或拋出事件的對象。
事件監聽器由它來處理事件
實現某個特定EventListener介面,此介面定義了一種或多種方法,事件源調用它們以響應該介面所處理的每一種特定事件類型。
事件具體的事件類型
事件類型封裝在以java.util.EventObject為根的類層次中。當事件發生時,事件記錄發生的一切事件,並從事件源傳播到監聽器對象
7. 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;i<tempVector.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();
}
}
8. 如何實現java在後台監聽鍵盤
操作系統,有兩個層次,第一個層次是對組裝起電腦的各個硬體的驅動程序;第二個是建立在驅動程序上的各項應用程序,比如桌面顯示、鍵盤監聽後的處理程序等等。如果想要進行監聽鍵盤,那麼就需要獲取到所使用操作系統給出的api介面,以windows系統為例,是用c和c++進行編寫的,所以他們提供的api都是c和c++的api介面。於是用java的話就需要用到java的native方法,一個Native Method就是一個java調用非java代碼的介面。所以3個步驟:
1、引用java native方法。
2、研究windows api。
3、調用windows api中的鍵盤監聽介面,完成程序。
9. java中用什麼方法可以去監聽一個值是否發生
在放值得時候 可以加一個回調函數, 當放置的值為目標值時 調用某一個函數就可以達到所謂監聽的目的。或者 不管放什麼值 都調用這個回調函數,在函數中寫自己的邏輯即可。