简易记事本--java

本文详细介绍了如何实现一个简单的记事本应用,包括菜单栏、文本域、滚动条的布局,以及文件的保存、打开和退出功能。通过实例代码展示了如何使用JFrame、JMenuBar、JTextArea等组件,并处理文档事件和文件操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现一个简易记事本

效果:记事本界面,实现用户编辑内容,文本字体设置,文件保存,文件打开,记事本退出

先来看看最后运行的一个结果界面:(代码在最后)
字体颜色设置
分析上图,第一个观察简易记事本的主要构成
1.菜单栏
2.文本域
3.给文本域添加的滚动条
在这里插入图片描述

第二个考虑窗体布局,明显的使用方位布局–BorderLayout。菜单栏添加到窗体的上方,文本域添加到窗体的中间。

第三个考虑使用到的组件:面板JPanel,菜单栏JMenuBar,菜单JMenu,文本域JTextArea,文本域的滚动条JScrollPane,
还有三个菜单JMenu:file 、edit 、view

第四个,代码的实现思路
1.定义要用到的变量
2.创建主要方法分别实现:变量初始化、组件往窗体上添加、组件事件监听,保存文件,打开文件,记事本退出等功能

代码有一些细节要注意,菜单有哪些都可以自己定义,如下,每俩功能之间都有一条下划线,当然这个不添加也可以。
在这里插入图片描述

代码实现

package test2;
//简易记事本,里面的this是调用成员变量,解决局部变量名称冲突问题
import javax.swing.*;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.*;

//继承JFrame的这个父类,实现监听器的接口
public class EasyTXT extends JFrame implements ActionListener {
   
    //观察布局,有菜单栏和文本域两个上下组成,所以用方位布局
    //先定义要用到的变量

    JPanel jp;//窗体主面板
    JTextArea jta;//文本域
    JScrollPane jsp;//文本域的滚动条
    JMenuBar jmb;//菜单栏组件
    JMenu file,edit,view;//菜单内容
    File currentFile=null;//当前打开的文件
    boolean wasSaved=true;//当前文件是否保存

    public  void TextEditor(){
    //该方法实现对组件的初始化
        jp=new JPanel();//初始化面板
        jmb=new JMenuBar();//初始化菜单栏组件
        jta=new JTextArea(50,50);//初始化文本域
        jta.getDocument().addDocumentListener( 
        //给文本域注册监听器,用来监听文档是否发生更改,DocumentListener()接口中有三个方法      
                new DocumentListener() {
     
                       
                    @Override//表示继承,以下三个方法是对父类方法的一个重写
                    public void insertUpdate(DocumentEvent e) {
   
                        wasSaved=false;//表示编辑框有修改操作
                        //当监听到有这三种操作时就代表着文本将重新保存,这时文本状态是未保存的,所以用false,true是文件已保存
                    }

                    @Override
                    public void removeUpdate(DocumentEvent e) {
   

                        wasSaved=false;//表示对编辑框有插入操作
                    }

                    @Override
                    public void changedUpdate(DocumentEvent e) {
   

                        wasS
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值