📄 demonotepad.java
字号:
package com.zk1;
import javax.swing.*;
import java.awt.*;
import javax.swing.undo.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.event.*;
import javax.swing.filechooser.FileFilter;
class NotePad extends JFrame implements ActionListener
{
JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu("File");
JMenuItem open = new JMenuItem("Open",'O');
JMenuItem save = new JMenuItem("Save",'S');
JMenuItem exit = new JMenuItem("Exit",'E');
UndoManager undo2 = new UndoManager();
JMenu edit = new JMenu("Edit");
JMenuItem undo = new JMenuItem("Undo",'U');
JMenuItem redo = new JMenuItem("Redo",'R');
JMenuItem copy = new JMenuItem("Copy",'C');
JMenuItem cut = new JMenuItem("Cut",'t');
JMenuItem delete = new JMenuItem("Delete",'D');
JMenuItem selectAll = new JMenuItem("SelectAll",'S');
JTextArea text = new JTextArea();
JScrollPane scroll = new JScrollPane(text);
NotePad()
{
Container pane = this.getContentPane();
open.setAccelerator(KeyStroke.getKeyStroke('O',Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),true));
open.addActionListener(this);
menu.add(open);
open.setAccelerator(KeyStroke.getKeyStroke('S',Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),true));
save.addActionListener(this);
menu.add(save);
menu.addSeparator();
menu.add(exit);
undo.addActionListener(this);
edit.add(undo);
edit.add(redo);
edit.add(copy);
edit.add(cut);
edit.add(delete);
edit.add(selectAll);
menuBar.add(menu);
menuBar.add(edit);
text.getDocument().addUndoableEditListener(new UndoableEditListener()
{
public void undoableEditHappened(UndoableEditEvent e)
{
undo2.addEdit(e.getEdit());
}
}
);
pane.add(scroll);
this.setJMenuBar(menuBar);
this.setContentPane(pane);
this.setLocation(200,200);
this.setSize(500,400);
this.setVisible(true);
}
String filename="";
File f =null;
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == open)
{
try
{
JFileChooser chooser = new JFileChooser();
chooser.setFileFilter(new TextFilter());
if( chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION)
{
f = chooser.getSelectedFile();
FileReader reader = new FileReader(f);
String strText = "";
int iT;
while((iT = reader.read())!=-1)
{
strText+=(char)iT;
}
this.text.setText(strText);
reader.close();
}
}catch(Exception ex)
{
ex.printStackTrace();
}
}
if(e.getSource() == save)
{
JFileChooser c = new JFileChooser();
c.setFileFilter(new TextFilter());
if(c.showSaveDialog(this) == JFileChooser.APPROVE_OPTION)
{
f = c.getSelectedFile();
try
{
String strText = this.text.getText();
// System.out.println(strText);
FileWriter writer = new FileWriter(f);
writer.write(strText);
writer.close();
}catch(Exception ex)
{
}
}
}
}
}
class TextFilter extends FileFilter
{
public boolean accept(File f)
{
return f.getName().endsWith(".txt") || f.isDirectory();
}
public String getDescription()
{
return "文本文件(*.txt)";
}
}
class DemoNotePad
{
public static void main(String[] args)
{
new NotePad();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -