A. java中為什麼要設置監聽器,有什麼用
豬哥解答:
1、private JButton jb=new JButton("按鈕");這句話聲明了一個按鈕,名字叫jb。
2、jb.addActionListener(this);這里給jb那個按鈕設置了監聽,默認為點擊觸發,當然你寫的這個監聽有點怪異~
3、點擊按鈕jb觸發監聽處理方法actionPerformed,在這里可以做你想要的操作,你代碼實現的是改變lab這個label標簽的內容。
4、至於java中為什麼要用監聽,這就像銀行裝監控一樣,監視你的一舉一動,銀行裝監控是為了捕捉每個進銀行的人的動作,預防危險的發生。
java中做監聽同樣是為了監視某個客戶端動作用的,萬一你給我搞破壞怎麼辦(監聽的作用遠不止如此),當然也像平時生活中不是所有的地方都要放監控,要不就沒法過了,java中也不是所有的地方都要放監聽,具體哪裡要放監聽,不該是在課本里學的,應該根據實際工廠、公司的需求來定。
B. java怎麼個監聽器設置監聽時間,比如說按一個鍵就是隔開多少時間才會監聽一次
設定線程的休眠時間。
鏈接如下:http://www.2cto.com/kf/201405/304185.html
加油專,試試吧屬!
C. java怎樣監聽一個值是否發生了變化,具體代碼
java 自定義監聽器監聽屬性變化
import java.util.EventObject;
public class MyEvent extends EventObject
{
private Object obj;
private String sName;
public MyEvent(Object source,String sName)
{
super(source);
this.obj=source;
this.sName=sName;
}
public Object getObj()
{
return obj;
}
public String getsName()
{
return sName;
}
}
import java.util.EventListener;
public interface MyEventListener extends EventListener
{
public void handleEvent (MyEvent me);
}
import java.util.Iterator;
import java.util.Vector;
import demo.DemoEvent;
public class MyEventSource
{
private Vector list=new Vector();
private String sName = "";
public MyEventSource()
{
super();
}
public void addMyEventListener(MyEventListener me)
{
list.add(me);
}
public void deleteMyEventListener(MyEventListener me)
{
list.remove(me);
}
public void notifyMyEvent(MyEvent me)
{
Iterator it=list.iterator();
while(it.hasNext())
{
((MyEventListener) it.next()).handleEvent(me);
}
}
public void setName(String str)
{
boolean bool = false;
if (str == null && sName != null)
bool = true;
else if (str != null && sName == null)
bool = true;
else if (!sName.equals(str))
bool = true;
this.sName = str;
// 如果改變則執行事件
if (bool)
notifyMyEvent(new MyEvent(this, sName));
}
public String getsName()
{
return sName;
}
}
public class Test implements MyEventListener
{
public Test()
{
MyEventSource mes = new MyEventSource();
mes.addMyEventListener(this);
mes.setName("niu");
}
public static void main(String args[])
{
new Test();
}
public void handleEvent(MyEvent me)
{
System.out.println(me.getSource());
System.out.println(me.getsName());
}
}
D. java定時器 每天凌晨 固定執行一個方法
可以通過以下方式實現,
public class TimerManager {
//時間間隔
private static final long PERIOD_DAY = 24 * 60 * 60 * 1000;
public TimerManager() {
Calendar calendar = Calendar.getInstance();
/*** 定製每日:00執行方法 ***/
calendar.set(Calendar.HOUR_OF_DAY, 2);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
Date date=calendar.getTime(); //第一次執行定時任務的時間
//如果第一次執行定時任務的時間 小於 當前的時間
//此時要在 第一次執行定時任務的時間 加一天,以便此任務在下個時間點執行。如果不加一天,任務會立即執行。
if (date.before(new Date())) {
date = this.addDay(date, 1);
}
Timer timer = new Timer();
NFDFlightDataTimerTask task = new NFDFlightDataTimerTask();
//安排指定的任務在指定的時間開始進行重復的固定延遲執行。
timer.schele(task,date,PERIOD_DAY);
}
// 增加或減少天數
public Date addDay(Date date, int num) {
Calendar startDT = Calendar.getInstance();
startDT.setTime(date);
startDT.add(Calendar.DAY_OF_MONTH, num);
return startDT.getTime();
}
}
public class NFDFlightDataTimerTask extends TimerTask {
private static Logger log = Logger.getLogger(NFDFlightDataTimerTask.class);
@Override
public void run() {
try {
//在這里寫你要執行的內容
} catch (Exception e) {
log.info("-------------解析信息發生異常--------------");
}
}
}
public class NFDFlightDataTaskListener implements ServletContextListener {
public void contextInitialized(ServletContextEvent event) {
new TimerManager();
}
public void contextDestroyed(ServletContextEvent event) {
}
}
然後要在web.xml裡面配置監聽器
<listener>
<listener-class>
com.listener.NFDFlightDataTaskListener
</listener-class>
</listener>
E. oracle的監聽器listener 和 java web的監聽器listener 的聯系是什麼
區別如下:
1、從定義方面的區別:
1)oracle監聽器是Oracle基於伺服器端的一種網路服務,主要用於監聽客戶端向資料庫伺服器端提出的連接請求。既然是基於伺服器端的服務,那麼它也只存在於資料庫伺服器端,進行監聽器的設置也是在資料庫伺服器端完成的。
2)java web中的listener可以監聽web伺服器中某一個執行動作,並根據其要求作出相應的響應。通俗的語言說就是在application,session,request三個對象創建消亡或者往其中添加修改刪除屬性時自動執行代碼的功能組件。比如spring 的總監聽器 會在伺服器啟動的時候實例化配置的bean對象 、 hibernate 的 session 的監聽器會監聽session的活動和生命周期,負責創建,關閉session等活動。
2、從實現方面的區別:
oracle的監聽是基於網路和埠號實現的:
Servlet的監聽器Listener,它是實現了javax.servlet.ServletContextListener 介面的伺服器端程序,它也是隨web應用的啟動而啟動,只初始化一次,隨web應用的停止而銷毀。主要作用是: 做一些初始化的內容添加工作、設置一些基本的內容、比如一些參數或者是一些固定的對象等等。
二者的聯系:都是通過後台守護進程捕獲某一事件的發生。