java图形化界面编程之记事本

本文档展示了如何使用Java编程创建一个简单的记事本应用程序,包括文件的打开、保存功能,以及基本的图形用户界面(GUI)设计。通过JFrame、JMenuItem、FileDialog等组件,实现了文本的读写操作。

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

package day25;

import java.awt.BorderLayout;
import java.awt.FileDialog;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;

public class Notepad {
        JFrame frame=new JFrame("记事本");
        
            //菜单条
            JMenuBar bar=new JMenuBar();
            //面板
            JPanel panel=new JPanel();
            //文件菜单
            JMenu fileMenu=new JMenu("文件");
            JMenu editMenu=new JMenu("编辑");
            
            JMenu other=new JMenu("选项"); //复选菜单
            //文件菜单功能项
            JMenuItem open=new JMenuItem("打开");
            JMenuItem save=new JMenuItem("保存");
                    
            //编辑菜单功能项
            JMenuItem about=new JMenuItem("关于");
            JMenuItem exit=new JMenuItem("退出");
            
            //复选菜单
            JMenuItem work1=new JMenuItem("项目1");
            JMenuItem work2=new JMenuItem("项目2");
            JMenuItem work3=new JMenuItem("项目3");
            
            TextArea textArea=new TextArea();
          
        public  void InitNotepad(){
            
            //窗口添加菜单条
            frame.add(bar,BorderLayout.NORTH);
            frame.add(textArea);
            //菜单条添加文件菜单
            bar.add(fileMenu);
            bar.add(editMenu);
            
            //文件菜单项添加功能
            fileMenu.add(open);
            fileMenu.add(save);
            //复选菜单
            other.add(work1);
            other.add(work2);
            other.add(work3);
            fileMenu.add(other);
            
            //编辑菜单添加功能
            editMenu.add(about);
            editMenu.add(exit);
                         
            fileMenu.add(other);
            
            //向打开添加事件
            open.addActionListener(new ActionListener() {            
                
                public void actionPerformed(ActionEvent e) {
                        
                    try {
                        FileDialog filedialog=new FileDialog(frame,"请选择要打开的文件",FileDialog.LOAD);
                        filedialog.setVisible(true);
                        //将要打开的文件显示出来
                        String path=filedialog.getDirectory(); //获取用户打开的文件路径
                        String filename=filedialog.getFile(); //获取打开的文件名
                        //读取要打开的文件的内容

                            FileInputStream fileInputStream=new FileInputStream(new File(path,filename));
                            int length=0;
                            byte [] buf=new byte[1024];
                            while((length=fileInputStream.read(buf))!=-1){
                                String content=(new String(buf,0,length));
                                //将内容加到文本区域
                               textArea.setText(content);
                            }
                            
                            fileInputStream.close();
                    }  catch (IOException e1) {
                        e1.printStackTrace();
                    }        
                }
            });
            //给保存添加事件
            save.addActionListener(new ActionListener(){                
                public void actionPerformed(ActionEvent e) {
                    try {
                        FileDialog fileDialog=new FileDialog(frame,"请选择要保存的路径",FileDialog.SAVE);
                        fileDialog.setVisible(true);
                        //获取用户选择的路径和文件名
                        String path=fileDialog.getDirectory();
                        String filename=fileDialog.getFile();
                        //创建输出对象
                        FileOutputStream fileoutputStream=new FileOutputStream(new File(path,filename));
                        //获取文本区域内容
                        String content=textArea.getText();
                        //将文本内容写出
                        
                        fileoutputStream.write(content.getBytes());
                        fileoutputStream.close();
                        
                    }  catch (IOException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                    }
                }
            });
            
            
            FrameUtil.InitFrame(frame, 600, 500);
    }
        
        public static void main(String[] args) {
            new Notepad().InitNotepad();
            
        }
}

Java课程设计实训大作业:记事本+简易计算器+聊天系统+日历+中英查询 基础任务一:设计日历软件 根据如下图,综合运用GUI编程、事件处理、Calendar类应用等知识设计一款月历,要求能通过输入(或选择)年月的方式正确显示当前月份的所有日期。 基础任务二:设计中英查询软件 根据Java面向对象程序设计相关理论,及GUI编程、事件处理、数据库编程等技术,设计一个如下图所示的“中英文释义查询”程序。输入英文单词,查询数据库将对应的中文显示在下框中;输入中文,查询数据库将对应的英文单词显示在下框中。 提升任务三:设计简易记事本软件 1.使用Java图形界面组件设计记事本软件的界面,参考如图所示。 2.程序代码规范,逻辑正确,能够正常运行。 3.“文件”菜单,包括“新建”、“打开”、“保存”、“另存为”“退出”等功能。 提升任务四:设计简易计算器软件 1.使用Java图形界面组件设计软件,界面如图所示。 2.软件能够满足基本的“加、减、乘、除”等运算要求。 3.程序代码清晰,语法规范,结构合理,逻辑正确。 进阶任务五:自选主题开发一个应用软件(如在线聊天系统,学籍管理系统等)下面给的软件界面只是参考,同学们可以根据自己的想法进行设计。 1.软件界面美观、功能完善软件,导航清晰,操作方便,使用菜单栏、工具栏、布局管理器、按钮、表格等多种Java图形界面组件。 2.程序代码清晰,语法规范,结构合理,逻辑正确。 3.功能完善,程序代码优化,执行效率高,具有较好可维护性可扩展性。 4.软件功能设计具有一定的难度创意。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值