‘壹’ 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());
}
}