• 约 100 行 Java 代码,只使用 Java 标准库,完全没有第三方代码。
  • 开发时也不使用 Maven, Gradle 之类,只使用 javac
  • 有一个简单的 GUI 窗口。
  • 代码极致简单,不可能更简单了。

主要功能

  • 开源仓库 https://github.com/ahui2016/Wuliu-STN
  • 下载项目源码后,在终端执行命令 newnote 即可打开窗口,输入文本内容,点击 OK 完成一次记录。
  • 笔记内容是一个个 txt 文件,每天一个,例如 2025-01-01.txt
  • 主要用来记录 零散 的信息,没有条理的、混乱的短句等

两个优点

  1. 极低心智负担,每次操作就是打开一个文本框,输入内容,点击 OK 。没有别的操作了。
  2. 代码量超少,约 100 行,而且全是很简单很直白的代码,阅读和修改都很轻松。

不使用 Maven/Gradle, 只使用 javac

  • 全部代码才 11KB, 就算加上 README 之类的文件整个项目不压缩也只有 30KB
  • 只使用 Java 标准库,完全没有第三方代码,修改代码后只需要使用 javac 编译即可,相关的命令我也提供了,具体请看项目 README 。

一部分代码

下面是主界面 class Main 的全部代码:

public class Main implements Runnable {
    private ScrollArea scrollArea;

    public static void main(String[] args) {
        MyUtil.checkProjectExists();
        SwingUtilities.invokeLater(new Main());
    }

    public void run() {
        // 主窗口
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // 程序标题
        JPanel mainPanel = new JPanel();
        JLabel labelTitle = new JLabel("Wuliu Simple Text Note");
        mainPanel.add(labelTitle);

        // 文本框
        scrollArea = new ScrollArea();
        mainPanel.add(scrollArea.scrollPane());

        JLabel spacer = new JLabel(" ".repeat(150));
        mainPanel.add(spacer);
        
        // 提交按钮
        JButton okButton = new JButton("OK");
        okButton.addActionListener(new OkButtonListener());
        mainPanel.add(okButton);

        frame.add(BorderLayout.CENTER, mainPanel);
        frame.setSize(500, 400);
        frame.setLocationRelativeTo(null); // 窗口居中
        frame.setVisible(true);
    }

    // 按钮触发事件:获取文本框内容,生成文件 或 向文件添加内容
    class OkButtonListener implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
            String text = scrollArea.textArea().getText().trim();
            try {
                MyUtil.createNoteToday(text);
            } catch (IOException ex) {
                System.err.println("ERROR! ERROR!");
                throw new RuntimeException(ex);
            }
            System.exit(0);
        }
    }
}

以上就是主程序的全部代码,另外还有两个文件,比如 MyUtil.java, 汇总一些函数, 以便让主程序看起来简洁。 反正就是代码很少,功能也很简单,但很实用。

我之前下载过几个主打“简单”的笔记工具(自己也做过几个),但用了一段时间还是觉得不够简单, 因此这次尝试更彻底一点,大做减法,追求更极致的简单。

举报· 208 次点击
登录 注册 站外分享
1 条回复  
OWLS 小成 前天 20:43
不要一日一个文件,更喜欢全部都在一个文件。
返回顶部