Java实现可高亮的编程记事本——MyNotepad 附GitHub地址

核心功能: 代码高亮、自定义高亮(对任何文本文件)、运行代码(可配置不同文件的运行脚本)

其他功能: 记笔记、更改字体、进入代码模式、查找替换、字数统计、自动识别文件编码等实用功能。

具体代码与说明详见:https://github.com/PowerPollery/MyNotepad

程序截图:

C语言代码高亮:

运行结果:

 

菜单功能:

 

 

 

 

还可自定义高亮其他文件(详见GItHub):

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现记事本界面,可以使用 Java Swing GUI 库来构建用户界面。以下是一个简单的记事本界面的实现,包括菜单栏、工具栏、文本区和状态栏等。 ```java import java.awt.*; import java.awt.event.*; import javax.swing.*; public class MyNotepad extends JFrame implements ActionListener { private JTextArea textArea; private JFileChooser fileChooser; private String currentFile = "Untitled"; private boolean isSaved = true; public MyNotepad() { super("My Notepad"); // 创建菜单栏 JMenuBar menuBar = new JMenuBar(); setJMenuBar(menuBar); // 创建文件菜单 JMenu fileMenu = new JMenu("File"); menuBar.add(fileMenu); // 创建打开菜单项 JMenuItem openItem = new JMenuItem("Open"); openItem.addActionListener(this); fileMenu.add(openItem); // 创建保存菜单项 JMenuItem saveItem = new JMenuItem("Save"); saveItem.addActionListener(this); fileMenu.add(saveItem); // 创建另存为菜单项 JMenuItem saveAsItem = new JMenuItem("Save As"); saveAsItem.addActionListener(this); fileMenu.add(saveAsItem); // 添加分隔符 fileMenu.addSeparator(); // 创建退出菜单项 JMenuItem exitItem = new JMenuItem("Exit"); exitItem.addActionListener(this); fileMenu.add(exitItem); // 创建工具栏 JToolBar toolBar = new JToolBar(); add(toolBar, BorderLayout.NORTH); // 创建打开工具按钮 JButton openButton = new JButton(new ImageIcon("open.png")); openButton.addActionListener(this); toolBar.add(openButton); // 创建保存工具按钮 JButton saveButton = new JButton(new ImageIcon("save.png")); saveButton.addActionListener(this); toolBar.add(saveButton); // 添加分隔符 toolBar.addSeparator(); // 创建文本区 textArea = new JTextArea(); add(new JScrollPane(textArea), BorderLayout.CENTER); // 创建状态栏 JLabel statusLabel = new JLabel("Ready"); add(statusLabel, BorderLayout.SOUTH); // 创建文件选择器 fileChooser = new JFileChooser("."); } @Override public void actionPerformed(ActionEvent e) { String command = e.getActionCommand(); if (command.equals("Open")) { int result = fileChooser.showOpenDialog(this); if (result == JFileChooser.APPROVE_OPTION) { String fileName = fileChooser.getSelectedFile().getPath(); currentFile = fileName; setTitle(currentFile); isSaved = true; try { textArea.setText(""); java.io.BufferedReader reader = new java.io.BufferedReader(new java.io.FileReader(fileName)); String line = null; while ((line = reader.readLine()) != null) { textArea.append(line); textArea.append("\n"); } reader.close(); } catch (java.io.IOException ex) { ex.printStackTrace(); } } } else if (command.equals("Save")) { if (isSaved) { try { java.io.BufferedWriter writer = new java.io.BufferedWriter(new java.io.FileWriter(currentFile)); writer.write(textArea.getText()); writer.close(); } catch (java.io.IOException ex) { ex.printStackTrace(); } } else { actionPerformed(new ActionEvent(this, 0, "Save As")); } } else if (command.equals("Save As")) { int result = fileChooser.showSaveDialog(this); if (result == JFileChooser.APPROVE_OPTION) { String fileName = fileChooser.getSelectedFile().getPath(); currentFile = fileName; setTitle(currentFile); isSaved = true; try { java.io.BufferedWriter writer = new java.io.BufferedWriter(new java.io.FileWriter(currentFile)); writer.write(textArea.getText()); writer.close(); } catch (java.io.IOException ex) { ex.printStackTrace(); } } } else if (command.equals("Exit")) { System.exit(0); } } public static void main(String[] args) { MyNotepad notepad = new MyNotepad(); notepad.setSize(800, 600); notepad.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); notepad.setVisible(true); } } ``` 在该代码中,我们使用了 JFrame、JMenuBar、JMenu、JMenuItem、JToolBar 和 JTextArea 等 Swing 组件来构建记事本界面。我们还使用了 JFileChooser 组件来支持文件的打开和保存操作。其中,菜单栏和工具栏的事件处理都委托给了 MyNotepad 类本身来处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值