『壹』 java中什麼是事件源,事件的處理過程是什麼
在java的圖形界面開發中,要讓圖形界面接收到用戶的操作,就要給各個組件添加事件處理機制。
事件 : 為了實現用戶對圖形界面組件的操作,定義了一些事件
滑鼠事件:單擊,雙擊,滾輪等....
鍵盤事件 按下鍵盤,松開按鍵等...
焦點事件 :焦點獲得 ,焦點失去...
窗口事件: 窗口打開,窗口關閉等....
事件源: 發聲事件的場所. 比如按鈕被點擊,那麼事件源就是按鈕
文本框獲得焦點. 那麼事件源就是文本框
窗口被關閉,那麼事件源就是窗口
事件源-----產生----->事件------>被事件監聽器發現------>進入事件處理代碼
importjava.awt.Frame;
importjava.awt.event.WindowAdapter;
importjava.awt.event.WindowEvent;
{//窗口就是事件源
publicDemoAction(){
this.setTitle("窗口關閉");
this.setLocation(400,200);
this.setSize(360,280);
//給窗口綁定一個事件監聽器
this.addWindowListener(newWindowAdapter(){
@Override
publicvoidwindowClosing(WindowEvente){//事件WindowEvent
System.exit(0);//關閉窗口事件,那麼退出jvm
}
});
this.setVisible(true);
}
publicstaticvoidmain(String[]args){
newDemoAction();
}
}
『貳』 java 寫一個action 能實現點擊事件後瀏覽器能自動下載xml文件的功能!!急
方法一:調用瀏覽器下載文件
下面Action里的代碼可以用調用瀏覽器進行下載xml文件
importjava.awt.Desktop;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.net.URI;
importjavax.swing.JButton;
importjavax.swing.JFrame;
{
JButtonjb;
publicDownLoadDemo(){
jb=newJButton("Download");
jb.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
try{
Stringpath="網路xml的地址";
URIuri=newURI(path);
Desktop.getDesktop().browse(uri);
}catch(Exceptione1){
e1.printStackTrace();
}
}
});
add(jb);
setTitle("調用瀏覽器下載");
setBounds(380,380,230,80);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
publicstaticvoidmain(String[]args){
newDownLoadDemo();
}
}
當時上述下載方式,可能會彈出提示,比如保存位置等.
方法二:使用IO和net下載文件.這種方式沒有調用瀏覽器,下載過程,不會彈出提示燈
importjava.io.FileOutputStream;
importjava.io.InputStream;
importjava.net.URL;
importjava.net.URLConnection;
importjava.util.Date;
publicclassDownLoadDemo{
publicstaticvoidmain(String[]args)throwsException{
Stringstr="XML的網路地址";
URLurl=newURL(str);
URLConnectionurlconn=url.openConnection();
urlconn.connect();
InputStreamis=urlconn.getInputStream();
FileOutputStreamfos=newFileOutputStream("qq.exe");
byte[]buf=newbyte[4096];
intlength=0;
//System.out.println("開始下載時間:"+newDate());
while((length=is.read(buf))!=-1){
fos.write(buf,0,length);
}
fos.close();
is.close();
//System.out.println("下載完成時間:"+newDate());
}
}