java图形界面和文件

2022-03-25 教育 86阅读
importjava.awt.FileDialog;
importjava.awt.Toolkit;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileReader;
importjava.io.FileWriter;
importjava.io.IOException;

importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JMenu;
importjavax.swing.JMenuBar;
importjavax.swing.JMenuItem;
importjavax.swing.JScrollPane;
importjavax.swing.JTextArea;
importjavax.swing.JTextField;

@SuppressWarnings("serial")
publicclassExperimentextendsJFrameimplementsActionListener
{
privateJMenuBarjb;//菜单条
privateJMenum1,m2,m3;//菜单
privateJMenuItemi1,i2,ii1,ii2;//菜单项
privateJLabeljl;
privateJTextFieldjt;
privateFileDialogfd;
privateFilefile1=null;
privateJTextAreajta1,jta2;
//一般我们在使用JTextArea,都要加入JScrollPane
privateJScrollPanejsp1,jsp2;
//取得屏幕的宽度
intwidth=Toolkit.getDefaultToolkit().getScreenSize().width;
//取得屏幕的高度
intheight=Toolkit.getDefaultToolkit().getScreenSize().height;

publicExperiment()
{
jb=newJMenuBar();

m1=newJMenu("文件");
m2=newJMenu("编辑");
m3=newJMenu("视图");

i1=newJMenuItem("打开");
i2=newJMenuItem("保存");
ii1=newJMenuItem("复制");
ii2=newJMenuItem("粘贴");

jl=newJLabel("文件名");
jt=newJTextField();

jta1=newJTextArea(20,15);
jta2=newJTextArea(20,15);
jsp1=newJScrollPane(jta1);
jsp2=newJScrollPane(jta2);

jl.setBounds(250,60,60,20);
jt.setBounds(310,60,150,20);

jsp1.setBounds(20,120,300,400);
jsp2.setBounds(360,120,300,400);

this.setJMenuBar(jb);

jb.add(m1);
jb.add(m2);
jb.add(m3);

m1.add(i1);
m1.add(i2);
m2.add(ii1);
m2.add(ii2);

this.add(jl);
this.add(jt);

this.add(jsp1);
this.add(jsp2);

i1.addActionListener(this);
i2.addActionListener(this);

//标题
this.setTitle("实验7");
//窗体大小和剧中
this.setBounds((width-700)/2,(height-600)/2,700,600);
//不允许改变大小
this.setResizable(false);
//窗口关闭退出程序
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
//不采用布局
this.setLayout(null);
//是否显示
this.setVisible(true);
}

publicvoidactionPerformed(ActionEventc)
{
//如果点击的是i1
if(c.getSource()==i1)
{
fd=newFileDialog(this,"请选择打开的文件",FileDialog.LOAD);
fd.setVisible(true);//创建并显示打开文件对话框
if((fd.getDirectory()!=null)&&(fd.getFile()!=null))//路径和文本内容都不为空
{
jt.setText(fd.getFile());//在文本框里显示文件名
try
{
//以缓冲区方式读取文件内容
file1=newFile(fd.getDirectory(),fd.getFile());
FileReaderfr=newFileReader(file1);
BufferedReaderbr=newBufferedReader(fr);
Stringaline;
while((aline=br.readLine())!=null)
//按行读取文本,append方法是追加
jta2.append(aline+"\r\n");
fr.close();
br.close();
}catch(IOExceptionioe)
{
System.out.println(ioe);
}
}

}
if(c.getSource()==i2)
{
fd=newFileDialog(this,"请选择保存的路径",FileDialog.SAVE);
if(file1==null)
{
fd.setFile("*.txt");
}else
{
fd.setFile(file1.getName());
}
fd.setVisible(true);//创建并显示保存文件对话框
if((fd.getDirectory()!=null)&&(fd.getFile()!=null))
{
file1=newFile(fd.getDirectory(),fd.getFile());
save(file1);
jt.setText(fd.getFile());//在文本框里显示文件名
}
}
}

publicvoidsave(Filefile12)
{
try
{
//将文本区内容写入字符输出流
FileWriterfw=newFileWriter(file1);
fw.write(jta1.getText());
fw.close();
}catch(IOExceptionioe)
{
System.out.println(ioe);
}
}

publicstaticvoidmain(String[]args)
{
newExperiment();
}
}

自己看看吧,复制,粘贴库里有方法copy()和paste(),打开和保存,就是输入流和输出流的操作,自己去看看就会了
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com