Java小程序-记事本

这篇具有很好参考价值的文章主要介绍了Java小程序-记事本。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

摘 要

为了使自己熟悉Java编译,了解更多的面向对象语言的编程策略。进而,深入了解Java语言的操作、及原理等。因此我开发了一个记事本,使自己可以巩固知识,加深记忆。设计一个简易记事本,能够记录使用者输入的信息,同时可以实现保存输入的信息,以方便后期查看。同时可以支持保存后后期的修改,那就是插入文件后再次修改。在此款简易记事里面,可以写文档,同时也可以保存、删除等功能。可以在记事本里面更换字体颜色,字体也可以变换大小。同时也可以打开文件夹里面的文档。里面字体设置的是宋体。

关键词  JAVA  io流 容器 组件  GUI

第一章 概述

1.1 引言 

   记事本是一个很用的程序,主要包括对文件的储存、修改等编辑功能;还有复制、粘贴等。同时在此记事本可以改变字体大小颜色等。

1.2 设计背景

1.2.1Java简介

 Java具有以下特点,是目前软件设计中优秀的编程语言。Java不仅可以用来开发大型的应用程序,而且特别适合于Internet的开发。Java确实具备了“一旦携程处处可用”的特点,这也是Java最初风靡全球的原因。

java记事本,java,开发语言,课程设计

1.2.2Java语言特点

  1. 简单性:因为Java在C++之上设计出来的,设计者把C++的一些特性去掉了,这些特性在实际开发中,程序员也很少用到。
  2. 面向对象:Java是一款面向对象化语言。
  3. 平台无关:Java语言和其他语言相比,最大的优势就是编写的软件能在执行码上兼容,在所有的计算机上运行。(只要平台提供了Java运行的环境,Java编写的软件就能在其上运行。)
  4. 多线程:内置对多线程的支持。多线程允许同时完成多个任务。
  5. 多态

第二章 总体设计

2.1  界面设计

在主界面中设计一个JFrame 容器,并在其中加入文本域、下拉菜单等。

2.2 功能设计

首先建立框架,确定好设计的内容。根据内容找到相应的资料后,开始编写代码。

框架流程图

java记事本,java,开发语言,课程设计

2.3 系统功能设计

2.3.1 功能设计

   在下拉菜单中加入子菜单进行监视,分别实现对文件的操作功能。点击不同的菜单选项时,进行不同的操作。

功能框架流程图

java记事本,java,开发语言,课程设计

2.3.3 代码设计

  编写每个控件的相关代码,并进行调试。

  创建了一个标题为“简易记事本”的窗口,包括菜单条,菜单,菜单项。找准每个大类和他相对应的子类然后对其实现功能。

  1. 对文件的新建、打开、保存、另存、退出。
  2. 对文本复制、粘贴等
  3. 对字体的大小改变,颜色改变

第三章 详细设计

3.1 开发工具的选用及其介绍

3.1.1界面设计

先创建一个GUI界面,再往里面依次填东西,首先是窗口,设置窗口的大小,填入文本区域,设置在里面的字体,添面板、菜单条。菜单条里面增加菜单,菜单里面加入菜单项,然后分别给菜单项设置一些功能。

3.1.2 界面调试

确定主窗体,设置窗体的属性,对窗体进行布局,加入所需控件并对控件进行初始化。在完成加入菜单控件后,不能缺少setJMenuBar(cdl); 因为这是让菜单条可见。把menubar设置到JFame中。

 文章来源地址https://www.toymoban.com/news/detail-767704.html

3.1.2 界面调试

确定主窗体,设置窗体的属性,对窗体进行布局,加入所需控件并对控件进行初始化。在完成加入菜单控件后,不能缺少setJMenuBar(cdl); 因为这是让菜单条可见。把menubar设置到JFame中。

3.2 详细模块设计

3.2.1打开、使用

功能说明

利用代码运行成功后,打开窗口。既可以输入文字。在输入文字的同时可以选择文字的颜色、字体等。完成后可以选择保存等功能。在文本区域可以选择复制粘贴等功能来完成最后的结果。

程序代码

import javax.swing.*;
import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.*;
public class note {
	 public static void main(String[] args)	{
		 creatGUI();
	 }
	    public static void creatGUI() {
	        //创建可视化窗口/
	        JFrame f = new JFrame("记事本");
	        //设定显示位置,左上角为(0,0),根据笔记本电脑的显示分辨率设置成在正中间显示
	        f.setLocation(200, 100);//这是显示窗口的左上角坐标
	        //设定窗口大小为屏幕1/2倍(电脑显示分辨率)
	        f.setSize(800, 540);//我电脑显示分辨率为1920*1080
	      
	        //创建文本域用来打字显示出来的
	        JTextArea WBY = new JTextArea("");
	        //这里可以输入东西到时候打开窗体自动显示出来
	        WBY.setFont(new Font("", Font.BOLD, 25));
	        //设置文本域为自动换行
	        WBY.setLineWrap(true);
	        //将文本域添加到含有下拉框的面板中,因为文本区不带滚动条,
	        //需要把文本区放到滚动窗格中,
	        JScrollPane MB = new JScrollPane(WBY);
	        //将含有下拉框的面板放入内容面板中
	        f.add(MB);
	        //创建一个菜单栏,实例化
	        JMenuBar cdl = new JMenuBar();
	        //创建菜单栏上的5个菜单并且设置字体和大小
	        JMenu m1 = new JMenu("文件");
	        JMenu m2 = new JMenu("编辑");
	        JMenu m3 = new JMenu("字体大小");
	        JMenu m4 = new JMenu("字体颜色");
	        JMenu m5 = new JMenu("帮助文档");
	        m1.setFont(new Font("", Font.BOLD, 15));
	        m2.setFont(new Font("", Font.BOLD, 15));
	        m3.setFont(new Font("", Font.BOLD, 15));
	        m4.setFont(new Font("", Font.BOLD, 15));
	        m5.setFont(new Font("", Font.BOLD, 15));
	        
	        //在菜单的基础上创建下拉可选菜单项按钮
	        JMenuItem x1 = new JMenuItem("新建");
	        JMenuItem x2 = new JMenuItem("保存");
	        JMenuItem x3 = new JMenuItem("打开");
	        JMenuItem x4 = new JMenuItem("退出");
	        JMenuItem x5 = new JMenuItem("复制");
	        JMenuItem x6 = new JMenuItem("粘贴");
	        JMenuItem x7 = new JMenuItem("裁剪");
	        JMenuItem x8 = new JMenuItem("删除");
	        JMenuItem x9 = new JMenuItem("大");
	        JMenuItem x10 = new JMenuItem("中");
	        JMenuItem x11 = new JMenuItem("小");
	        JMenuItem x12 = new JMenuItem("红色");
	        JMenuItem x13 = new JMenuItem("绿色");
	        JMenuItem x14 = new JMenuItem("蓝色");
	        JMenuItem x15 = new JMenuItem("黑色");
	        JMenuItem x16 = new JMenuItem("百度");
	        //为下拉可选菜单项设置字体和大小
	        x1.setFont(new Font("s", Font.BOLD, 20));
	        x2.setFont(new Font("s", Font.BOLD, 20));
	        x3.setFont(new Font("s", Font.BOLD, 20));
	        x4.setFont(new Font("s", Font.BOLD, 20));
	        x5.setFont(new Font("s", Font.BOLD, 20));
	        x6.setFont(new Font("s", Font.BOLD, 20));
	        x7.setFont(new Font("s", Font.BOLD, 20));
	        x8.setFont(new Font("s", Font.BOLD, 20));
	        x9.setFont(new Font("s", Font.BOLD, 40));
	        x10.setFont(new Font("s", Font.BOLD, 30));
	        x11.setFont(new Font("s", Font.BOLD, 20));
	        x12.setFont(new Font("s", Font.BOLD, 20));
	        x13.setFont(new Font("s", Font.BOLD, 20));
	        x14.setFont(new Font("s", Font.BOLD, 20));
	        x15.setFont(new Font("s", Font.BOLD, 20));
	        x16.setFont(new Font("s", Font.BOLD, 20));
	        //给颜色下拉菜单项分别设置相应的背景色,这样展现就会直观一点了
	        x12.setBackground(Color.RED);
	        x13.setBackground(Color.GREEN);
	        x14.setBackground(Color.BLUE);
	        x15.setBackground(Color.BLACK);
	        //实现新建记事本按钮的功能
	        x1.addActionListener(e -> {
	            creatGUI();
	        });//再次调用该方法创建另外一个记事本
	      
	        //实现保存记事本按钮的功能
	        x2.addActionListener(new ActionListener() {
	            public void actionPerformed(ActionEvent e2) {
	                //创建一个窗体并且设置窗体标题和保存功能
	                FileDialog fileDialog = new FileDialog(f, "保存文件至", FileDialog.SAVE);
	                //保存文件的对话框设置为可见
	                fileDialog.setVisible(true);
	                //获取保存的路径和设置的文件名
	                String absPath = fileDialog.getDirectory() + fileDialog.getFile();
	                try {//用来检测是否设置了保存路径
	                    //设置输出文件名为保存的路径下面的文件名
	                    BufferedWriter wr = new BufferedWriter(new FileWriter(absPath));
	                    //获取文本域字符串
	                    String s = WBY.getText();
	                    //开始写入
	                    wr.write(s);
	                    //写完关闭
	                    wr.close();
	                } catch (IOException e) {
	                    e.printStackTrace();
	                }
	            }
	        });
	        //实现打开记事本按钮的功能
	        x3.addActionListener(new ActionListener() {
	            public void actionPerformed(ActionEvent e2) {
	                //创建一个窗体并且设置窗体标题和打开功能
	                FileDialog fileDialog = new FileDialog(f, "打开文件", FileDialog.LOAD);
	                //打开文件的对话框设置为可见
	                fileDialog.setVisible(true);
	                //获取打开的路径和设置的文件名
	                String absPath = fileDialog.getDirectory() + fileDialog.getFile();
	                try {//用来检测是否设置了打开路径
	                    //设置读入文件名为打开的路径下面的文件名
	                    BufferedReader re = new BufferedReader(new FileReader(absPath));
	                    String line;
	                    while ((line = re.readLine()) != null)
	                        //只要文件中不为空就不断追加到文本框中
	                        WBY.append(line + '\n');
	                    //读取完毕结束
	                    re.close();
	                } catch (Exception e) {
	                    e.printStackTrace();
	                }
	            }
	        });
	        //实现退出记事本按钮的功能
	        x4.addActionListener(e -> System.exit(0));
	        //调用文件工具箱下的系统剪贴板方法
	        Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
	        //实现复制文本按钮的功能
	        x5.addActionListener(e -> {
	            //将选中的文本内容存入text中
	            String text = WBY.getSelectedText();
	            //传送到字符串里面存着
	            StringSelection selection = new StringSelection(text);
	            //将得到的内容放入到剪切板中
	            clipboard.setContents(selection, null);
	        });
	        //实现粘贴文本按钮的功能
	        x6.addActionListener(e -> {
	            //获取系统剪贴板中的内容
	            Transferable text = clipboard.getContents(null);
	            //判断剪贴板中的内容是否支持文本
	            if (text.isDataFlavorSupported(DataFlavor.stringFlavor)) {
	                try {
	                    //强制转换剪贴板中的内容
	                    String text1 = (String) text.getTransferData(DataFlavor.stringFlavor);
	                    //获取当前光标的位置
	                    int n = WBY.getCaretPosition();
	                    //插入复制的内容到文本框的光标后面
	                    WBY.insert(text1, n);
	                } catch (Exception e2) {
	                    e2.printStackTrace();
	                }
	            }
	        });
	        //实现裁剪文本按钮的功能
	        x7.addActionListener(e -> {
	            //将得到的选择文本内容存入text中
	            String text = WBY.getSelectedText();
	            //传送到字符串里面存着
	            StringSelection selection = new StringSelection(text);
	            //将得到的内容放到剪切板中
	            clipboard.setContents(selection, null);
	            //将选中文本start到end之间的内容替换为空白""
	            WBY.replaceRange("", WBY.getSelectionStart(), WBY.getSelectionEnd());
	        });
	        //实现删除文本按钮的功能
	        x8.addActionListener(e -> {
	            //将选中文本start到end之间的内容替换为空白
	            WBY.replaceRange("", WBY.getSelectionStart(), WBY.getSelectionEnd());
	        });
	        //实现字体变大的功能
	        x9.addActionListener(e -> {
	            WBY.setFont(new Font("", Font.BOLD, 40));
	        });
	        //实现字体变中等大小的功能
	        x10.addActionListener(e -> {
	            WBY.setFont(new Font("", Font.BOLD, 30));
	        });
	        //实现字体变小的功能
	        x11.addActionListener(e -> {
	            WBY.setFont(new Font("", Font.BOLD, 20));
	        });
	        //实现字体颜色变红的功能
	        x12.addActionListener(e -> {
	            WBY.setForeground(Color.RED);
	        });
	        //实现字体颜色变绿的功能
	        x13.addActionListener(e -> {
	            WBY.setForeground(Color.GREEN);
	        });
	        //实现字体颜色变蓝的功能
	        x14.addActionListener(e -> {
	            WBY.setForeground(Color.BLUE);
	        });
	        //实现字体颜色变黑的功能
	        x15.addActionListener(e -> {
	            WBY.setForeground(Color.BLACK);
	        });
	        //实现打开帮助文档的功能
	        x16.addActionListener(e -> {
	            //创建消息提示框,包括显示内容和弹窗标题
	            JOptionPane.showMessageDialog(f,
	                    "百度!", "提示", JOptionPane.INFORMATION_MESSAGE);
	        });
	        //分别给5个菜单添加各自的下拉菜单项
	        m1.add(x1);
	        m1.addSeparator();//两个菜单项之间添加界线
	        m1.add(x2);
	        m1.addSeparator();//两个菜单项之间添加界线
	        m1.add(x3);
	        m1.addSeparator();//两个菜单项之间添加界线
	        m1.add(x4);
	        m2.add(x5);
	        m2.addSeparator();//两个菜单项之间添加界线
	        m2.add(x6);
	        m2.addSeparator();//两个菜单项之间添加界线
	        m2.add(x7);
	        m2.addSeparator();//两个菜单项之间添加界线
	        m2.add(x8);
	        m3.add(x9);
	        m3.addSeparator();//两个菜单项之间添加界线
	        m3.add(x10);
	        m3.addSeparator();//两个菜单项之间添加界线
	        m3.add(x11);
	        m4.add(x12);
	        m4.addSeparator();//两个菜单项之间添加界线
	        m4.add(x13);
	        m4.addSeparator();//两个菜单项之间添加界线
	        m4.add(x14);
	        m4.addSeparator();//两个菜单项之间添加界线
	        m4.add(x15);
	        m5.add(x16);
	        //添加这5个菜单到菜单栏
	        cdl.add(m1);
	        cdl.add(m2);
	        cdl.add(m3);
	        cdl.add(m4);
	        cdl.add(m5);
	        //给窗体添加完善好的菜单栏
	        f.setJMenuBar(cdl);
	        //记事本设置为可见
	        f.setVisible(true);
	        //点击×号结束应用程序
	        f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
	    }
	
}

 

 

到了这里,关于Java小程序-记事本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【windows程序设计作业】用c#语言实现记事本

    使用Visual C# 2015设计一个Windows应用程序——记事本,通过本章的学习,可以进一步掌握MenuStrip(菜单)、ToolStrip(工具栏)、RichTextBox(高级文本框)和StatusStrip(状态栏控件)等控件的使用,以及如何使用CommonDialog(公共对话框)实现对文本的存取、格式设置等操作。 实现

    2024年02月05日
    浏览(41)
  • android studio大作业,android studio课程设计,记事本实现

    先看效果图 功能点实现: 登录,注册,记事本分类添加,删除,数据分析统计报表,数据库使用SQLlite 部分实现代码

    2024年02月11日
    浏览(42)
  • Android:实现安卓小程序-记事本(备忘录)的开发,教你如何增加拿到BAT大厂offer几率

    public MyBaseAdapter(Context context, List data) { this.context = context; this.data = data; } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override public int getCount() { if(data==null) return 0; return data.size(); } } 接着在编写NoteAdapter类继承上类,初始化view, 将Note条目的

    2024年04月25日
    浏览(39)
  • Android开发_记事本(1)

    TextView中有下述几个属性: id: 为TextView设置一个组件id,根据id,我们可以在Java代码中通过findViewById()的方法获取到该对象,然后进行相关属性的设置,又或者使用RelativeLayout时,参考组件用的也是id! layout_width: 组件的宽度,一般写: wrap_content 或者 match_parent(fill_parent) ,前

    2023年04月10日
    浏览(53)
  • 微信小程序开发笔记—记事本

    其实在一开始本人就想做一个类似日记本的功能,但是碍于最开始能力有限,而且发现上网搜索到的一些相关资料较少,看到做有其他博主做,但是使用的云开发,本人暂时只想做一个简单的无后台的,所以没有参考。其次也搜到一些其他内容,真的是看了超多文章,这里贴

    2024年02月03日
    浏览(33)
  • C# 记事本应用程序

    2024年02月10日
    浏览(35)
  • Windows应用程序——记事本

    本博客介绍如何使用Visual Studio 2019设计一个Windows应用程序——记事本,通过学习,可以进一步掌握MenuStrip(菜单)、ToolStrip(工具栏)、RichTextBox(高级文本框)和StatusStrip(状态栏控件)等控件的使用,以及如何使用CommonDialog(公共对话框)实现对文本的存取、格式设置等

    2024年02月03日
    浏览(35)
  • 基于Android Studio 开发的简易记事本

    🍅 文章末尾有获取完整项目源码方式 🍅 目录 一、引言 视频效果展示: 图片效果展示: 二、详细设计 1.首页 2.添加和修改页面 3.登录页 4.注册页 三、获取源码          Android初学者开发第一个完整的基础实例项目应该就属《记事本》了,该项目基于Android Studio开发使用

    2024年02月05日
    浏览(39)
  • 基于Android的记事本设计和模块开发

    有一万五千字论文,完美运行。 由于编程技术的迅速发展,各种记事本APP随处可见,在人们的日常生活中经常使用的到。于是各种记事本APP也跟着发展起来。本文在通过在Android Studio开发平台上开发一个简单的多功能语音输入记事本APP的过程,同时了解记事本APP的功能实现,

    2024年02月03日
    浏览(41)
  • 安卓大作业(AndroidStudio开发)日记记事本app

    博主介绍: 本人专注于Android/java/数据库/微信小程序技术领域的开发,以及有好几年的计算机毕业设计方面的实战开发经验和技术积累;尤其是在安卓(Android)的app的开发和微信小程序的开发,很是熟悉和了解;本人也是多年的Android开发人员;希望我发布的此篇文件可以帮

    2024年02月11日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包