Notepad练习2

/**
 * Notepad练习
 */

package day150201;

import java.awt.BorderLayout;
import java.awt.FileDialog;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Notepad {
	private Frame f = null;
	private TextArea ta = null;
	private MenuBar mb = null;
	private Menu fileMenu = null;
	private Menu _1Menu = null;

	private MenuItem _2MenuItem = null;
	private MenuItem openItem = null;
	private MenuItem saveItem = null;
	private MenuItem closeItem = null;

	private static FileDialog fd = null;
	private static File file = null;

	public Notepad() {
		init();
	}

	public void init() {
		f = new Frame("Notepad-yg");
		f.setBounds(200, 100, 600, 400);
		f.setLayout(new BorderLayout());// 可以不设置,frame默认即是

		mb = new MenuBar();
		fileMenu = new Menu("File");
		_1Menu = new Menu("_1Menu");
		_2MenuItem = new MenuItem("_2MenuItem");
		openItem = new MenuItem("Open");
		saveItem = new MenuItem("Save");
		closeItem = new MenuItem("Close");

		_1Menu.add(_2MenuItem);
		fileMenu.add(_1Menu);
		fileMenu.add(openItem);
		fileMenu.add(saveItem);
		fileMenu.add(closeItem);
		mb.add(fileMenu);

		ta = new TextArea();

		f.setMenuBar(mb);
		f.add(ta);

		addListener();

		f.setVisible(true);
	}

	private void addListener() {
		f.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});

		openItem.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				fd = new FileDialog(f, "Open", FileDialog.LOAD);
				fd.setVisible(true);

				String dir = fd.getDirectory();
				String fileName = fd.getFile();

				if (dir == null || fileName == null)
					return;
				ta.setText("");
				file = new File(dir, fileName);
				BufferedReader bufr = null;
				try {

					bufr = new BufferedReader(new FileReader(file));
					String line = null;
					while ((line = bufr.readLine()) != null) {
						ta.append(line + "\r\n");
					}

				} catch (IOException el) {
					throw new RuntimeException("打开文件失败");
				} finally {
					try {
						if (bufr != null)
							bufr.close();
					} catch (IOException el) {
						throw new RuntimeException("读取流关闭失败");
					}
				}
			}
		});

		saveItem.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				if (file == null) {
					fd = new FileDialog(f, "Open", FileDialog.SAVE);
					fd.setVisible(true);

					String dir = fd.getDirectory();
					String fileName = fd.getFile();
					if (dir == null || fileName == null)
						return;
					file = new File(dir, fileName);
				}

				BufferedWriter bufw = null;
				try {
					bufw = new BufferedWriter(new FileWriter(file));
					bufw.write(ta.getText());
					bufw.flush();
				} catch (IOException el) {
					throw new RuntimeException("保存文件失败");
				} finally {
					try {
						if (bufw != null)
							bufw.close();
					} catch (IOException el) {
						throw new RuntimeException("写入流关闭失败");
					}
				}
			}
		});

		closeItem.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				System.exit(0);

			}
		});
	}

	public static void main(String[] args) {
		new Notepad();
	}
}


转载于:https://my.oschina.net/cuncaojin/blog/374047

Notepad是一个简单实用的文本编辑器,是Windows上最常用的文本编辑工具之一。它的功能虽然简单,但是却可以处理多种类型的文本文件,并且不需要额外的软件支持。Notepad可以用于创建、编辑和保存纯文本文件,也可以打开和编辑HTML、CSS和其他编程语言的代码文件等。 Notepad对于初学者和专业软件开发人员都非常方便,初学者可以用它来练习编写代码,专业软件开发人员也可以用它来快速编辑代码。Notepad提供了一些常用的工具和功能,如查找和替换、自动换行、调整编码等,以确保代码的准确性和可读性。 CSDN是一个专业的IT技术社区,包括编程语言、数据结构、网络安全、数据库、AI等多个领域。CSDN中不仅包含了来自业界专家的技术文章,也提供了在线文档、视频课程和编程工具。 Notepad中文版CSND的出现,则是将这两个工具结合在一起,为用户提供更加优质的文本编辑服务。在这个版本中,用户可以对基本的文本编辑功能进行应用取舍,并可突破语言限制访问中文版CSDN所提供的技术文档和编程资源。此外,CSND版本还提供了许多其他的有用功能,如文本自动保存、自动备份等。 总的来说,Notepad中文版CSDN的诞生,极大地方便了用户进行文本编辑和编程。它的操作简单,功能强大,无论是初学者还是专业软件开发人员都可以得到满足。并且,中文版CSDN的丰富资源库也为软件开发人员提供了快速、便捷的IT技术解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值