actionlistener字面上理解就是动作监听器。
它是一个接口,在实现此接口的类中,你可以给需要关注其动作的组件(如Button)添加监听器(addActionListener(this);),来自之后在事件处理方法(publicvoidactionPerformed(ActionEven袁苦却吗最光山助民tevent){})中,对每个事件进行不同处理。
给你个例子吧,是我自己写的一承术亲找五第球电溶个记事本:
impo360问答rt***.io.*;
importj老红ava.***.event.*;
import***.swing.*;
publicclassMainClassextendsJFrameimplementsActionListener{
intwidth=500,height=400;
JPanelpanel;
JMenuBarbar;
JMenufileMenu,editMenu,helpMenu;
头虽令状马执职JMenuItem打开O,新建N,保存S,另存A,剪切T,复制C,粘贴P,关于A;
JT方带此绝剧兴extAreatextArea团减落在保执整练课=null;
FiletempFile道迫=null;
publ高发同icMainClass(){//构造方法
se显木言庆风迫快轴华构天tTitle("TextEdit");
setSize(wid伤待差布已感映th,height);
p斯志婷蛋服职流更anel=(JPanel)getContentPane();
bar=newJMenuBar();
fileMenu=n效一掌知ewJMenu("文件F");
***.setmnemonic('F');
editMenu=n毛娘安线编品树ewJMenu("编辑E");
***.setm分杂毫出定存做盟nemonic('E');
helpMenu=newJMenu("帮助H");
***.setmnemonic('H');
打开O=纸newJMenuItem("打开O");
打开***.setmnem***nic('O');
新建N=newJMenuItem("新建N");
新建***.setm***emo***ic('N');
保存S=n茶ewJMenuItem("保存S");
保存***.***etmnemonic('S');
另存A=newJMenuItem("另存A");
另存***.setmnemonic('A');
剪切T=newJMenuItem("剪切C");
剪切***.se***mnemonic('t');
复制C=newJMenuItem("复制C");
复制***.setmnemoni***('C');
粘贴P=newJMenuItem("粘贴P");
粘贴***.setmnemonic('P');
关于A=newJMenuItem("关于A");
关于***.setmnemonic('A');
***.add(打开O);
***.add(新建N);
***.add(保存S);
***.add(另存A);
***.add(fileMenu);
***.add(剪切T);
***.add(复制C);
***.add(粘贴P);
***.add(editMenu);
***.add(关于A);
***.add(helpMenu);
textArea=newJTextArea();
***.add("North",bar);
***.add("Center",textArea);
打开***.addacti***nlistener(this);
新建***.addactio***liste***er(this);
保存***.addactionli***tener(this);
另存***.***dd***ctionlistener(this);
剪切***.addac***ionlis***ener(this);
复制***.adda***tionlistener(this);
粘贴***.addactionlistener(this);
关于***.***dd***ctionlistener(this);
setDefaultCloseOperation(***.exit_ON_CLOSE);
setVisible(true);
}
publicvoidactionPerformed(ActionEventevent){//处理事件
if(***.getsource()==打开O){//处理打开
JFileChooserjfc=newJFileChooser();
***.showopendialog(panel);
tempFile=***.getselectedfile();
FileReaderfis;
try{
fis=newFileReader(tempFile);
***.read(fis,null);
***.seteditable(true);
}catch(Exceptionex){***.printstacktrace();}
}
if(***.getsource()==新建N){//处理新建
***.seteditable(true);
***.settext(null);
}
if(***.getsource()==保存S){//处理保存
if(tempFile==null){
JFileChooserjfc=newJFileChooser();
***.showsavedialog(panel);
tempFile=***.getselectedfile();
try{
FileWriterfos=newFileWriter(tempFile);
***.write(fos);
}catch(Exceptionex){***.printstacktrace();}
}
else{
try{
FileWriterfos=newFileWriter(tempFile);
***.write(fos);
}catch(Exceptionex){***.printstacktrace();}
}
}
if(***.getsource()==另存A){//处理另存
JFileChooserjfc=newJFileChooser();
***.showsavedialog(panel);
tempFile=***.getselectedfile();
try{
FileWriterfos=newFileWriter(tempFile);
***.write(fos);
}catch(Exceptionex){***.printstacktrace();}
}
if(***.getsource()==剪切T){//处理剪切
***.cut();
}
if(***.getsource()==复制C){//处理复制
***.copy();
}
if(***.getsource()==粘贴P){//处理粘贴
***.paste();
}
if(***.getsource()==关于A){//处理关于
***.settext("Manifest-Version:1.0\n"+
"Created-By:Libra_JL\n"+
"QQ:254791521\n");
***.seteditable(false);
***.validate();
validate();
}
}
publicstaticvoidmain(String[]args){//主函数
newMainClass();
}
}