if(s2[i][j].equals(""))
jm[i].addSeparator();
else{
jmi[i][j]=newJMenuItem(s2[i][j]);
jm[i].add(jmi[i][j]);
jmi[i][j].addActionListener(this);//设置监听
}
}
jmb.add(jm[i]);
}
jf.setJMenuBar(jmb);
jf.add(newJScrollPane(jta));
jf.setSize(500,400);
jf.setLocation(150,50);
jf.setVisible(true);
jf.addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
System.out.println("Windowclose!
");
System.exit(0);
}
});
}
publicvoidactionPerformed(ActionEvente){//监听
Stringcom=e.getActionCommand();
if(com.equals("新建")){
jta.selectAll();//选择全部
jta.replaceSelection("");//替换为空
sn=0;//未选中文件
}//这方法有点烂。
。
。
。
if(com.equals("打开")){
jfc.showOpenDialog(jf);
//弹出一个"OpenFile"文件选择器对话框,(JFileChooser类)
Filef=jfc.getSelectedFile();
//取得所选取的文件,如果未选取则返回以输入栏未为文件名的文件
readFile(f);//调用读取文件方法
sn=1;//已选中文件
}
if(com.equals("保存")){
if(sn==0){
jfc.showSaveDialog(jf);//弹"SaveFile"文件选择器.
Filef=jfc.getSelectedFile();
Stringstr=jta.getText();//提取全部内容
writeFile(f,str);//调写文件方法
fn=f;//记录此文件
sn=1;
}else{
writeFile(fn,jta.getText());
}
}
if(com.equals("另存为")){
jfc.showDialog(jf,"另存为");//跳一个自己设置按键名字的选择器
Filef=jfc.getSelectedFile();
writeFile(f,jta.getText());
}
if(com.equals("退出"))
System.exit(0);
if(com.equals("撤销")){
Stringa=jta.getText();//撤销是可还原循环操作
jta.setText(save);
save=a;//还原,再调用则恢复上次操作
}
if(com.equals("剪切")){
save=jta.getText();//备份
jta.cut();
}
if(com.equals("复制"))
jta.copy();
if(com.equals("粘贴")){
save=jta.getText();//备份
jta.paste();
}
if(com.equals("删除")){
save=jta.getText();
jta.replaceSelection(null);//替换为空即为删除
}
if(com.equals("查找")||com.equals("替换")){//把它们写一起了。
省事
classCimplementsActionListener{//局部内部类
JTextFieldajf1=newJTextField(20);
JTextFieldajf2=newJTextField(20);
inti=0;//记录查找位置的下标
intti=0;//是否可替换,0为否,1为是.
JFramea=newJFrame("查找和替换");
publicC(){
JPanelb=newJPanel();
JButtonc1=newJButton("查找下一个");
JButtonc2=newJButton("取消");
JButtonc3=newJButton("替换");
JButtonc4=newJButton("全部替换");
b.setLayout(newFlowLayout());
b.add(ajf1);
b.add(c1);
b.add(c2);
a.add(b,BorderLayout.NORTH);
a.add(ajf2,BorderLayout.WEST);
a.add(c3);
a.add(c4,BorderLayout.EAST);
c1.addActionListener(this);
c2.addActionListener(this);
c3.addActionListener(this);
c4.addActionListener(this);
a.pack();
a.setLocation(600,20);
a.setVisible(true);
//因为不是主窗口,所以不用关闭窗口
}
publicvoidactionPerformed(ActionEvente){
Stringcomm=e.getActionCommand();
if(comm.equals("查找下一个"))
find(ajf1.getText());
if(comm.equals("替换")&&ti==1){
save=jta.getText();//备份
jta.replaceSelection(ajf2.getText());//替换选中区域
find(ajf1.getText());//继续找
}
if(comm.equals("全部替换")){
save=jta.getText();//备份
Stringchange=jta.getText().replaceAll(ajf1.getText(),ajf2.getText());
//取全部替换
jta.setText(change);//放
}
if(comm.equals("取消"))
a.setVisible(false);
//这里不知道有没有更好的方法能设置开关
}
publicvoidfind(Stringy){//查找函数
intn=jta.getText().indexOf(y,i);
i=n+1;//下标+1
if(n!
=-1){
jta.select(n,n+y.length());
ti=1;//找到后才可替换
}
else//弹出警告框
JOptionPane.showMessageDialog(null,"找不到!
","warning",
JOptionPane.INFORMATION_MESSAGE);
}
}
newC();
}
if(com.equals("全选"))
jta.selectAll();
if(com.equals("关于记事本")){//弹出消息框
JOptionPanejop=newJOptionPane();
jop.showMessageDialog(null,"王小薇的记事本JAVA作业"+"\n"
"关于记事本",
JOptionPane.INFORMATION_MESSAGE,
newImageIcon("/usr/share/pixmaps/gnome-aorta.png"));
//如果报错则说明找不到图片,把图片插入语句删除
}
}
publicvoidreadFile(Filef){//读取文件方法
if(f!
=null){
try{
FileInputStreamfis=newFileInputStream(f);
byte[]b=newbyte[1024];
Strings="";
for(;;){
inttemp=fis.read(b);
if(temp==-1)
break;
s=s+newString(b,0,temp);
}
fis.close();
jta.setText(s);
}catch(Exceptionee){
JOptionPane.showMessageDialog(null,"文件找不到!
","warning",
JOptionPane.INFORMATION_MESSAGE);
}
}
}
publicvoidwriteFile(Filef,Stringstr){//写文件方法
if(f!
=null){
try{
FileOutputStreamfos=newFileOutputStream(f);
fos.write(str.getBytes());
fos.close();
}catch(Exceptionee){
ee.printStackTrace();
}
}
}
publicstaticvoidmain(String[]args){
newJiShi();
}
}
7.窗口应用程序实现文本的同步复制
将1.txt文件中的内容文件复制到2.txt中
publicstaticvoidmain(Stringarg[])
{intb;
intlen;
try{
FileInputStreamfi=newFileInputStream("1.txt");
FileOutputStreamfo=newFileOutputStream("2.txt");
try{
while((b=fi.read())!
=-1){
fo.write(b);
}
fi.close();
fo.close();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}catch(FileNotFoundExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
9..Applet小程序(使用组件,播放声音)
装入一个名为123.mp3的声音文件并播放
packagecha9;
importjava.awt.*;
importjava.applet.*;
publicclassSoundDemoextendsApplet
{
publicvoidpaint(Graphicsg)
{
AudioClipaudioClip=getAudioClip(getCodeBase(),"123.mp3");
//创建AudioClip对象
//并用getAudioClip方法将其初始化。
g.drawstring("SoundDemo!
",5,15);
audioClip.loop(); //使用AudioClip类的loop方法循环播放
}
}
为运行该Applet做准备,需把如下的HTML语句放入SoundDemo.HTML文件:
SoundDemoApplet