📄 notepad.java
字号:
v.clear();
}
public void actionPerformed(WindowEvent e) {
if (file.getName().length() == 0) {
JFileChooser fileSave = new JFileChooser();
fileSave.setCurrentDirectory(new File("d:/"));
int result = fileSave.showSaveDialog(fileSave);
if (result == JFileChooser.APPROVE_OPTION) {
File fileName = fileSave.getSelectedFile();
try {
FileWriter in = new FileWriter(fileName);
String fstr = content.getText();
in.write(fstr);
in.close();
} catch (Exception ee) {
}
file = fileSave.getSelectedFile();
MenuFrame.this.setTitle(file.getName());
}
} else {
try {
FileWriter in = new FileWriter(file);
String fstr = content.getText();
in.write(fstr);
in.close();
} catch (Exception ee) {
}
}
content_first = content.getText();
v.clear();
}
}
/*
* ==============另存为记事本动作=========
*/
class NewSaveHandle implements ActionListener {
public void actionPerformed(ActionEvent e) {
JFileChooser fileSave = new JFileChooser();
fileSave.setCurrentDirectory(new File("d:/"));
int result = fileSave.showSaveDialog(MenuFrame.this);
if (result == 0) {
File fileName = fileSave.getSelectedFile();
if (fileName.exists()) {
int i = JOptionPane.showConfirmDialog(fileSave,
"你想覆盖原文件吗?", "文件已存在!",
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE);
if (i != 0) {
actionPerformed(e);
}
}
try {
FileWriter out = new FileWriter(fileName);
out.write(content.getText());
out.close();
file = fileSave.getSelectedFile();
content_first = content.getText();
v.clear();
MenuFrame.this.setTitle(file.getName());
} catch (Exception ee) {
}
}
}
}
/*
* ============ 打开记事本动作===========
*/
class OpenHandle implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (content.getText().length() == 0
|| content.getText() == content_first) {
JFileChooser fileOpen = new JFileChooser();
fileOpen.setCurrentDirectory(new File("d:/"));
fileOpen.setFileFilter(new FileFilter() {
public boolean accept(File f) {
return f.isDirectory() || f.getName().endsWith(".txt");
}
public String getDescription() {
return "文本文档(*.txt)";
}
});
int result = fileOpen.showOpenDialog(fileOpen);
if (result == JFileChooser.APPROVE_OPTION) {
File fileName = fileOpen.getSelectedFile();
try {
content.setText("");
FileReader read = new FileReader(fileName);
BufferedReader br = new BufferedReader(read);
String fstr;
while ((fstr = br.readLine()) != null) {
content.append(fstr + "\n");
}
content_first = content.getText();
v.clear();
file = fileOpen.getSelectedFile();
MenuFrame.this.setTitle(file.getName());
br.close();
read.close();
} catch (Exception ee) {
}
}
} else {
int i = JOptionPane.showConfirmDialog(MenuFrame.this, "文件"
+ file.getPath() + "内容已经改变是否需要保存再打开?", "记事本",
JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE);
if (i == 1) {
content.setText("");
actionPerformed(e);
}
if (i == 0) {
(new SaveHandle()).actionPerformed(e);
content.setText("");
actionPerformed(e);
}
}
}
}
// ===============页面设置事件 ==================
class PrinterHandle implements ActionListener {
public void actionPerformed(ActionEvent e) {
new PrinterDialog(MenuFrame.this, content).setupPage();
}
}
// ===============打印功能 ==================
class FilePrtHandle implements ActionListener {
public void actionPerformed(ActionEvent arg0) {
new PrinterDialog(MenuFrame.this, content).priteFile();
}
}
// 退出事件,先判断是否有文件改变,然后再判断用户的选择,用i来判断
class QuitHandle implements ActionListener {
public void actionPerformed(ActionEvent e) {
String s = content.getText();
if (s.equals(content_first)) {
System.exit(0);
} else {
int i = JOptionPane.showConfirmDialog(MenuFrame.this, "文件"
+ file.getPath() + "内容已经改变是否需要保存再退出?", "记事本",
JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE);
if (i == 1) {
System.exit(0);
}
if (i == 0) {
(new SaveHandle()).actionPerformed(e);
}
}
}
}
// ==============编辑菜单中的事件监听 ==========
// ================撤销事件 ==================
class BackHandle implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (!v.isEmpty()) {
int i = v.size();
if (i > 1) {
v.removeElementAt(i - 1);
}
content.setText(v.lastElement());
}
}
}
// ================剪切事件 ==================
class CutHandle implements ActionListener {
public void actionPerformed(ActionEvent e) {
content.cut();
}
}
// ================复制事件 ==================
class CopyHandle implements ActionListener {
public void actionPerformed(ActionEvent e) {
content.copy();
}
}
// ================粘贴事件 ==================
class TieHandle implements ActionListener {
public void actionPerformed(ActionEvent e) {
content.paste();
}
}
// ================删除事件 ==================
class DelHandle implements ActionListener {
public void actionPerformed(ActionEvent e) {
content.replaceSelection("");
}
}
// ================查询事件 ==================
class SearchHandle implements ActionListener {
public void actionPerformed(ActionEvent e) {
new SearchDialog(MenuFrame.this, content);
}
}
// ================查找下一个事件 ==================
class SnextHandle implements ActionListener {
public void actionPerformed(ActionEvent e) {
new SearchDialog(MenuFrame.this, content);
}
}
// ================替换事件 ==================
class ChangeHandle implements ActionListener {
public void actionPerformed(ActionEvent e) {
new ReplaceDialog(MenuFrame.this, content);
}
}
// ================ 转到事件 ==================
class GotoHanle implements ActionListener {
public void actionPerformed(ActionEvent e) {
String s = JOptionPane
.showInputDialog(MenuFrame.this, "请输入你要转到的行数");
if (s == null||s.length()==0) {
JOptionPane.showMessageDialog(MenuFrame.this, "输入不合法", "错误信息",
JOptionPane.ERROR_MESSAGE);
} else {
try
{
int i = Integer.parseInt(s);
int j = 1;
String area = content.getText();
char[] cs = area.toCharArray();
for (int i1 = 0; i1 < cs.length; i1++) {
if (10 == (cs[i1] + 0)) {
j++;
}
if (i == j) {
if (i == 1) {
content.setCaretPosition(i1);
} else {
content.setCaretPosition(i1 + 1);
}
break;
}
}
}catch(NumberFormatException e1)
{
JOptionPane.showMessageDialog(MenuFrame.this, "输入不合法", "错误信息",
JOptionPane.ERROR_MESSAGE);
}
}
}
}
// ================全选事件 ==================
class SallHandle implements ActionListener {
public void actionPerformed(ActionEvent e) {
content.selectAll();
}
}
// ================日期事件 ==================
class DateHandle implements ActionListener {
public void actionPerformed(ActionEvent e) {
Date today = new Date();
// 格林威治时间的历法
GregorianCalendar gc = new GregorianCalendar();
// 将万年历翻到所对应的信息
gc.setTime(today);
String s = "";
s = gc.get(Calendar.YEAR) + "年" + (gc.get(Calendar.MONTH) + 1)
+ "月" + gc.get(Calendar.DATE) + "日"
+ gc.get(Calendar.HOUR_OF_DAY) + "时"
+ gc.get(Calendar.MINUTE) + "分" + gc.get(Calendar.SECOND)
+ "秒";
if (content.getSelectedText() == null) {
content.replaceRange(s, content.getCaretPosition(), content
.getCaretPosition());
} else {
content.replaceSelection(s);
}
}
}
// ===============自动换行事件 ==================
class FontsHandle implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (content.getLineWrap() == false) {
content.setLineWrap(true);
content.setText(content.getText());
} else {
content.setLineWrap(false);
content.setText(content.getText());
}
label.setVisible(false);
component[20].setSelected(false);
content.updateUI();
}
}
// ===============字体事件 ==================
class FontHandle implements ActionListener {
public void actionPerformed(ActionEvent e) {
new FontDialog(MenuFrame.this, content);
}
}
// ================状态事件 =================
class ViewHandle implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (component[20].isSelected()) {
label.setVisible(true);
} else {
label.setVisible(false);
}
}
}
// ================帮助事件 ==================
class HelpHandle implements ActionListener {
public void actionPerformed(ActionEvent e) {
new HelpDialog(MenuFrame.this);
}
}
// ================记事本事件 ==================
class HalpInfHandle implements ActionListener {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(MenuFrame.this,
"记事本版本 1.0.0 \r\n 作者: 李永路");
}
}
// ===============右键窗口事件 ==================
class BoxRHandle implements ActionListener {
public void actionPerformed(ActionEvent e) {
}
}
// ===============列出事件 ==================
class BoxSHandle implements ActionListener {
public void actionPerformed(ActionEvent e) {
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -