文件的打开保存另存为功能代码实现
(效果图)
import java.awt.BorderLayout;
public class NotePad
{
private JFrame jf;
private JMenuBar menu;
private JMenuItem open;
public class NotePad
{
private JFrame jf;
private JMenuBar menu;
private JMenuItem open;
private JMenuItem save;
private JMenuItem saveAs;
private JMenu file;
private JMenu help;
private JMenuItem about;
private JTextArea textArea;
private String filePath;
public void show()
\{
init();
setStyle();
registHandler();
jf.setDefaultCloseOperation(JFrame.EXIT\_ON\_CLOSE);
jf.setVisible(true);
\}
//表单控件初始化
private void init()
\{
jf = new JFrame();
menu = new JMenuBar();
open = new JMenuItem("打开");
save = new JMenuItem("保存");
saveAs = new JMenuItem("另存为");
file = new JMenu("文件");
help = new JMenu("帮助");
about = new JMenuItem("关于");
textArea = new JTextArea();
\}
//表单控件的添加
private void setStyle()
\{
jf.setSize(600, 600);
menu.add(file);
menu.add(help);
file.add(open);
file.add(save);
file.add(saveAs);
help.add(about);
jf.add(menu, BorderLayout.NORTH);
JScrollPane jsp = new JScrollPane(textArea);
jf.add(jsp);
\}
交互事件
private void registHandler()
\{ //给打开按钮添加事件监听(方法实现)
open.addActionListener(new ActionListener()
\{
@Override
public void actionPerformed(ActionEvent e)
\{
FileDialog fd = new FileDialog(jf);
fd.setVisible(true);
if (fd.getFile() != null)
\{
filePath = fd.getDirectory() + fd.getFile();
BufferedReader br = null;
try
\{
br = new BufferedReader(new InputStreamReader(new FileInputStream(filePath)));
String line = null;
while ((line = br.readLine()) != null)
\{
textArea.append(line + "\\n");
\}
\}
catch (Exception e2)
\{
e2.printStackTrace();
\}
finally
\{
if (br != null)
\{
try
\{
br.close();
\}
catch (IOException e1)
\{
e1.printStackTrace();
\}
\}
\}
\}
\}
\});
//给保存按钮添加事件监听(方法实现)
save.addActionListener(new ActionListener()
\{
@Override
public void actionPerformed(ActionEvent e)
\{
// 如果filePath为null
save(false);
\}
\});
//给另存为按钮添加事件监听(方法实现)
saveAs.addActionListener(new ActionListener()
\{
@Override
public void actionPerformed(ActionEvent e)
\{
save(true);
\}
\});
\}
private void save(boolean isSaveAs)
\{
while(filePath == null || isSaveAs)
\{
FileDialog fd = new FileDialog(jf);
fd.setVisible(true);
if(fd.getFile()==null)
\{
continue;
\}
filePath = fd.getDirectory() + fd.getFile();
\}
PrintWriter pw = null;
try
\{
pw = new PrintWriter(filePath);
pw.println(textArea.getText());
\}
catch (Exception e)
\{
e.printStackTrace();
\}finally\{
if(pw != null)
\{
pw.close();
\}
\}
\}
//主函数调用菜单界面
public static void main(String\[\] args)
\{
new NotePad().show();
\}
}
还没有评论,来说两句吧...