JAVA编写一个文本编辑程序TextEdit.java

1.首先编出界面部分

setLayout(null);定义可自定义组件位置;setBounds(x,y,width,height)定义组件的界限(绝对位置)

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;

import javax.swing.*;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
public class TestEdit extends JFrame{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	JButton button1=new JButton("保存");
	JButton button2=new JButton("取消");
	JButton button3=new JButton("退出");
	static JTextArea text1=new JTextArea("");

	public TestEdit() {
		setLayout(null);
		text1.setBounds(0,0,400,120);
		button1.setBounds(95,130,60,25);
		button2.setBounds(170,130,60,25);
		button3.setBounds(245,130,60,25);
		add(text1); 
		add(button1);
		add(button2);
		add(button3);
		public static void main(String[] args) {
		// TODO Auto-generated method stub
		TestEdit f=new TestEdit();
		f.setTitle("文本编辑器");
		f.setSize(400,200);
		TestEdit.readFile();
		f.setVisible(true);
		}
}

2.为框架中的组件添加功能(监听器及事件处理)

监听器+事件处理 我采用的是 组件+增加监听器(new 监听器){事件处理}的格式,让代码整体层次分明,读起来简明易懂.此代码主要实现了文本文件的创建、保存以及读取.

text1.getDocument().addDocumentListener(new DocumentListener(){
			 
			
			@Override
			public void insertUpdate(DocumentEvent e) {
				// TODO Auto-generated method stub
				
			}
			@Override
			public void removeUpdate(DocumentEvent e) {
				// TODO Auto-generated method stub
				
			}

			@Override
			public void changedUpdate(DocumentEvent e) {
				// TODO Auto-generated method stub
				
			}
		});
		button1.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				writeFile();
			}
			
		});
		button2.addActionListener(new ActionListener() {

			@Override//重载
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				text1.setText("");
			}
			
		});
		button3.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				System.exit(0);
			}
			
		});
	}
	
	public static void readFile() {
        try (FileReader rf = new FileReader("D:\\eclipse-workspace\\编程练习9\\src\\com\\Gui\\myText.txt");
             BufferedReader br = new BufferedReader(rf)
        ) {
            String line;
            while ((line = br.readLine()) != null) {
                
                text1.append(line+"\n");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

	/*
	 * 实现写入文件方法
	 */
	public void writeFile() {
		try {
            File wf = new File("D:\\eclipse-workspace\\编程练习9\\src\\com\\Gui\\myText.txt");
            wf.createNewFile();
            try (FileWriter writer = new FileWriter(wf);
                 BufferedWriter out = new BufferedWriter(writer)
            ) {
                out.write(text1.getText()+"\r\n");
                out.flush();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
	}

3.完整代码

一个简易的记事本程序

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;

import javax.swing.*;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
public class TestEdit extends JFrame{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	JButton button1=new JButton("保存");
	JButton button2=new JButton("取消");
	JButton button3=new JButton("退出");
	static JTextArea text1=new JTextArea("");

	public TestEdit() {
		setLayout(null);
		text1.setBounds(0,0,400,120);
		button1.setBounds(95,130,60,25);
		button2.setBounds(170,130,60,25);
		button3.setBounds(245,130,60,25);
		add(text1); 
		add(button1);
		add(button2);
		add(button3);
		
		text1.getDocument().addDocumentListener(new DocumentListener(){
			 
			
			@Override
			public void insertUpdate(DocumentEvent e) {
				// TODO Auto-generated method stub
				
			}
			@Override
			public void removeUpdate(DocumentEvent e) {
				// TODO Auto-generated method stub
				
			}

			@Override
			public void changedUpdate(DocumentEvent e) {
				// TODO Auto-generated method stub
				
			}
		});
		button1.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				writeFile();
			}
			
		});
		button2.addActionListener(new ActionListener() {

			@Override//重载
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				text1.setText("");
			}
			
		});
		button3.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				System.exit(0);
			}
			
		});
	}
	
	public static void readFile() {
        try (FileReader rf = new FileReader("D://文本文件绝对保存路径");
             BufferedReader br = new BufferedReader(rf)
        ) {
            String line;
            while ((line = br.readLine()) != null) {
                
                text1.append(line+"\n");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

	/*
	 * 实现写入文件方法
	 */
	public void writeFile() {
		try {
            File wf = new File("D://文本文件绝对保存路径");
            wf.createNewFile();
            try (FileWriter writer = new FileWriter(wf);
                 BufferedWriter out = new BufferedWriter(writer)
            ) {
                out.write(text1.getText()+"\r\n");
                out.flush();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		TestEdit f=new TestEdit();
		f.setTitle("文本编辑器");
		f.setSize(400,200);
		TestEdit.readFile();
		f.setVisible(true);
		

	}

}

4.效果

如图

效果

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值