记事本(java版)(只完成部分功能)

暂时只实现打开文件,保存和另存为功能

import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class NotePad extends JFrame implements ActionListener{

	JMenuBar jmBar;//菜单条组件
	JMenu menu1, menu2, menu3, menu4, menu5, xinjian;
	JMenuItem item2, item3, item4, item5, item6, item7;
	JMenuItem file, project;
	
	JTextArea jta;
	
	String filename = "";
	
	public static void main(String[] args) {
		
		NotePad notePad = new NotePad();
	}
	
	public NotePad(){
		
		
		jmBar = new JMenuBar();
		
		menu1 = new JMenu("文件(F)");
		menu1.setMnemonic('F');
		menu2 = new JMenu("编辑(E)");
		menu2.setMnemonic('E');
		menu3 = new JMenu("格式(O)");
		menu3.setMnemonic('O');
		menu4 = new JMenu("查看(V)");
		menu4.setMnemonic('V');
		menu5 = new JMenu("帮助(H)");
		menu5.setMnemonic('H');
		xinjian = new JMenu("新建");
		
		item2 = new JMenuItem("打开");
		item2.setActionCommand("open");
		item2.addActionListener(this);
		item3 = new JMenuItem("保存(S)");
		item3.setMnemonic('S');
		item3.setActionCommand("save");
		item3.addActionListener(this);
		item4 = new JMenuItem("另存为");
		item4.setActionCommand("as");
		item4.addActionListener(this);
		item5 = new JMenuItem("页面设置");
		item6 = new JMenuItem("打印");
		item7 = new JMenuItem("退出");
		
		file = new JMenuItem("文件");
		project = new JMenuItem("工程");
		
		jta = new JTextArea();
		Font font = new Font("宋体",Font.PLAIN, 15);
		jta.setFont(font);
		JScrollPane jsp = new JScrollPane(jta);
		jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
		
		xinjian.add(file);
		xinjian.add(project);
		
		menu1.add(xinjian);
		menu1.add(item2);
		menu1.add(item3);
		menu1.add(item4);
		menu1.addSeparator();
		menu1.add(item5);
		menu1.add(item6);
		menu1.addSeparator();
		menu1.add(item7);
		
		jmBar.add(menu1);
		jmBar.add(menu2);
		jmBar.add(menu3);
		jmBar.add(menu4);
		jmBar.add(menu5);
		
		this.add(jmBar, BorderLayout.NORTH);
		this.add(jsp);
		
		this.setTitle("记事本");
		this.setSize(700, 400);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
	}

	@Override
	public void actionPerformed(ActionEvent arg0) {
		
		if(arg0.getActionCommand().equals("open")) {
			//弹出打开选择窗口
			JFileChooser jfc1 = new JFileChooser();
			jfc1.setDialogTitle("选择文件...");
			jfc1.showOpenDialog(null);
			jfc1.setVisible(true);
			
			filename = jfc1.getSelectedFile().getAbsolutePath();
			String resString = "";
			
			FileReader fr = null;
			BufferedReader br = null;
			String string = "";
			
			try {
				fr = new FileReader(filename);
				br = new BufferedReader(fr);
				
				while((string=br.readLine()) != null) {
					resString += string + "\r\n";
				}
				
				jta.setText(resString);
			} catch (Exception e) {
				e.printStackTrace();
			} finally {
				try {
					br.close();
					fr.close();
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		} else if(arg0.getActionCommand().equals("save")) {
			FileWriter fw1 = null;
			BufferedWriter bw1 = null;
			
			if(filename.equals("")){
				saveas();
			} else {
				try {
					fw1 = new FileWriter(filename);
					bw1 = new BufferedWriter(fw1);
					
					bw1.write(jta.getText());
				} catch (Exception e) {
					e.printStackTrace();
				} finally {
					try {
						bw1.close();
						fw1.close();
					} catch (Exception e) {
						
						e.printStackTrace();
					}
				}
			}
			
		} else if(arg0.getActionCommand().equals("as")) {
			saveas();
		}
	}
	
	public void saveas(){
		//弹出保存选择窗口
		JFileChooser jfc2 = new JFileChooser();
		jfc2.setDialogTitle("另存为...");
		jfc2.showSaveDialog(null);
		jfc2.setVisible(true);
		
		String filenameString = jfc2.getSelectedFile().getAbsolutePath();
		
		FileWriter fw2 = null;
		BufferedWriter bw2 = null;
		
		try {
			fw2 = new FileWriter(filenameString);
			bw2 = new BufferedWriter(fw2);
			
			int jtaLineNumber = jta.getLineCount();
			String s = "";
			for (int i = 0; i < jtaLineNumber; i++) {
				try {
					s = jta.getText(jta.getLineStartOffset(i), 
							jta.getLineEndOffset(i)-jta.getLineStartOffset(i));
				} catch (Exception e) {
					e.printStackTrace();
				}
				bw2.write(s + "\r\n");
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				bw2.close();
				fw2.close();
			} catch (Exception e2) {
				e2.printStackTrace();
			}
		}
	}

}


  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值