JAVA实现简易文本编辑器设计
生活随笔
收集整理的這篇文章主要介紹了
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实现简易文本编辑器设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 肿瘤免疫浸润资源汇总
- 下一篇: sun java认证考试大纲_SUN认证