JAVA实现简易文本编辑器设计
2021/11/6 12:09:35
本文主要是介绍JAVA实现简易文本编辑器设计,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
废话不多说直接上代码
import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import javax.swing.plaf.FontUIResource; import javax.swing.text.Document; import java.io.*; import java.util.Enumeration; public class JTextAreaTester extends JFrame implements ActionListener { private JButton btnOpen, btnSave, btnCopy, btnPaste, btnCut, btnSelectAll, btnClearAll; private JTextArea ta; private boolean isTextModified; // 文本被编辑的标记 private String file = ""; // 文件名 private final static String APP_NAME = "简易文本编辑器"; public JTextAreaTester() { super(APP_NAME); this.setSize(500, 300); this.setDefaultCloseOperation(EXIT_ON_CLOSE); ta = new JTextArea(); ta.setLineWrap(true); // 自动换行 ta.setFont(new Font("宋体", Font.PLAIN, 16)); JScrollPane sp = new JScrollPane(ta); // 根据需要自动显示滚动条 JButton btnOpen = new JButton("打开文件"); btnOpen.setActionCommand("打开文件"); JButton btnSave = new JButton("保存文件"); btnSave.setActionCommand("保存文件"); JButton btnCopy = new JButton("复制"); btnCopy.setActionCommand("复制"); JButton btnPaste = new JButton("粘贴"); btnPaste.setActionCommand("粘贴"); JButton btnCut = new JButton("剪切"); btnCut.setActionCommand("剪切"); JButton btnSelectAll = new JButton("全选"); btnSelectAll.setActionCommand("全选"); JButton btnClearAll = new JButton("清空"); btnClearAll.setActionCommand("清空"); // 为组件注册动作事件监听器 btnOpen.addActionListener(this); btnSave.addActionListener(this); btnPaste.addActionListener(this); btnSelectAll.addActionListener(this); JPanel panel = new JPanel(); // 按钮放置在一个面板内 FlowLayout layout = (FlowLayout) panel.getLayout(); layout.setHgap(2); panel.add(btnOpen); panel.add(btnSave); panel.add(btnCopy); panel.add(btnPaste); panel.add(btnCut); panel.add(btnSelectAll); panel.add(btnClearAll); this.add(sp, "Center"); this.add(panel, "South"); // 给文本框的文档添加文档监听器 Document doc = ta.getDocument(); doc.addDocumentListener(new DocumentListener() { public void changedUpdate(DocumentEvent e) { } public void insertUpdate(DocumentEvent e) { setTitle(APP_NAME + "-" + file + "(*)"); // 设置修改标记 isTextModified = true; // 设置修改标记 } public void removeUpdate(DocumentEvent e) { setTitle(APP_NAME + "-" + file + "(*)"); // 设置修改标记 isTextModified = true; // 设置修改标记 } }); } public void actionPerformed(ActionEvent e) { String cmd = e.getActionCommand(); if (cmd.equals("打开文件")) { // 打开文本文件 StringBuffer sb = new StringBuffer(""); try { BufferedReader br = new BufferedReader(new FileReader("学校简介.txt")); String str = br.readLine(); while (str != null) { sb.append(str + "\n"); str = br.readLine(); } br.close(); ta.setText(sb.toString()); this.setTitle(APP_NAME + "-" + file); // 窗体标题初始化 isTextModified = false; // 重置修改标记 } catch (Exception e1) { ta.setText(e1.getMessage()); } } else if (cmd.equals("保存文件")) { // 保存文本 // TODO: 保存文件的代码 this.setTitle(APP_NAME + "-" + file); // 窗体标题重置 isTextModified = false; // 保存后修改 } else if (cmd.equals("复制")) { ta.paste(); } } // 初始化全局字体 private static void initGlobalFont() { FontUIResource fontUIResource = new FontUIResource(new Font("宋体", Font.PLAIN, 14)); for (Enumeration<Object> keys = UIManager.getDefaults().keys(); keys.hasMoreElements();) { Object key = keys.nextElement(); Object value = UIManager.get(key); if (value instanceof FontUIResource) { UIManager.put(key, fontUIResource); } } } public static void main(String[] args) { initGlobalFont(); // 初始化全局所有字体 JTextAreaTester frm = new JTextAreaTester(); frm.setVisible(true); } }
这篇关于JAVA实现简易文本编辑器设计的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南