Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TinyNotepad

TinyNotepad 是一个简单的记事本应用程序,具有基本的文本编辑功能。该应用程序支持文件操作、文本编辑、查找和替换文本,还包括可自定义的外观设置。

本自述文件由ChatGPT-4o根据 doc.md 生成,简化版可以看那个

使用方法

运行 NoteapdApp 类即可启动应用程序。这将打开主窗口,并提供上述所有功能。

功能设计

主窗口

主窗口包含一个菜单栏,提供各种文件操作、文本编辑和设置选项。

文件菜单

  • 新建: 创建一个新文件。
  • 打开: 打开一个现有文件。
  • 关闭: 关闭当前文件。
  • 保存: 保存当前文件。
  • 另存为: 将当前文件另存为一个新文件。
  • 设置: 打开设置窗口。
  • 退出: 退出应用程序。

编辑菜单

  • 撤销: 撤销上一个操作。
  • 重做: 重做上一个撤销的操作。
  • 剪切: 剪切选中的文本。
  • 复制: 复制选中的文本。
  • 粘贴: 粘贴剪贴板中的文本。
  • 删除: 删除选中的文本。
  • 全选: 选中所有文本。
  • 取消全选: 取消所有文本的选择。

查找菜单

  • 查找: 查找文档中的文本。
  • 替换: 替换文档中的文本。

类和结构设计

NoteapdApp

  • 应用程序的入口,负责加载主窗口。

NotepadController

  • 管理主窗口,并绑定操作到 UI 控件。
  • 成员变量:
    • Settings: 配置类的单例实例。
    • settingsController: 设置窗口的控制器。
    • searchManager: 查找功能的控制器。
    • saveManager: 文件保存管理器。

文件包

FileAccess

  • 负责具体的文件操作。

SaveManager

  • 管理文件的保存,包括自动保存和退出保存机制。
  • 成员变量:
    • hasSaved: 表示当前文件是否已保存。
    • boundedFile: 绑定到当前文档的文件对象。如果为 null,则使用一个临时文件进行自动保存。
  • 方法:
    • saveToFile(): 保存到文件。
    • saveAs(): 另存为一个新文件。
    • save(): 保存到绑定的文件,如果没有绑定文件,则调用 saveAs()
    • autoSave(): 自动保存到临时文件,如果没有绑定文件。

设置包

Settings

  • 保有设置字段,采用单例模式。

SettingsController

  • 管理设置窗口,展示和处理用户交互。
  • 方法:
    • openSettings(): 打开设置窗口。
    • closeSettings(): 关闭设置窗口时触发。
    • applySettings(): 应用设置(保存设置到 Settings 类),并且重新加载记事本或其他方式让新设置立即生效。
    • askforSave(): 询问是否保存更改,如果保存,则调用 applySettings(),仅在有修改时。

AppearanceSettings

  • 管理设置中的外观设置,包括字体、颜色和字体大小。

查询包

SearchManager

  • 管理查找功能,包括查找、替换和高亮文本。
  • 方法:
    • highlight(searchText): 高亮显示查找的文本。
    • replace(searchText, replaceText): 用替换文本替换查找的文本。

SearchController

  • 管理查找窗口,展示和处理查找和替换功能的用户交互。

About

基于JavaFX的记事本

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages