⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 note.java

📁 java记事本
💻 JAVA
字号:
import javax.swing.*; 
import javax.swing.event.*; 
import java.awt.*; 
import java.awt.event.*; 
import java.io.*; 
import java.awt.color.*;

public class Note extends JFrame 
{ 
MyFontChooser fontChooser;
boolean isChange=false; 
boolean wasChange=false; 
JMenuBar menuBar=new JMenuBar();     //菜单栏的实现将 JMenu 对象添加到菜单栏以构造菜单

JMenu menuFile=new JMenu("文件");    //创建菜单项及菜单子项
JMenuItem menuFileOpen=new JMenuItem("打开"); //菜单中项的实现
JMenuItem menuFileSave=new JMenuItem("保存"); 
JMenuItem menuFileExit=new JMenuItem("关闭"); 

JMenu menuEdit=new JMenu("编辑");    //创建菜单项及菜单子项
JMenuItem menuEditCut=new JMenuItem("剪切"); 
JMenuItem menuEditPaste=new JMenuItem("粘贴");
JMenuItem menuEditFont=new JMenuItem("字体");
JMenuItem font=new JMenuItem("字体颜色"); 
JMenuItem back=new JMenuItem("背景颜色");

JTextArea fileArea=new JTextArea();   //定义一个显示纯文本的多行区域。
public static void main(String arg[]) //主函数入口
{ 
Note nt=new Note(); 
nt.show(); 
}
public  Note() 
{ 
 super("记事本");
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); //取消关闭窗口的默认操作
addWindowListener(new WindowAdapter()     //调用exit响应关闭按钮
{ 
public void windowClosing(WindowEvent e) 
{ 
exit(); 
} 
}); 
menuFileOpen.addActionListener(new ActionListener() 
{ 
public void actionPerformed(ActionEvent e) 
{ 
fileOpen_actionPerformed(e); 
} 
}); 
menuFileSave.addActionListener(new ActionListener() 
{ 
public void actionPerformed(ActionEvent e) 
{ 
fileSave_actionPerformed(e); 
} 
}); 
menuFileExit.addActionListener(new ActionListener() //调用exit响应退出按钮
{ 
public void actionPerformed(ActionEvent e) 
{ 
  exit(); 
} 
}); 
menuEditCut.addActionListener(new ActionListener() 
{ 
public void actionPerformed(ActionEvent e) 
{ 
editCut_actionPerformed(e); 
} 
}); 
menuEditPaste.addActionListener(new ActionListener() 
{ 
public void actionPerformed(ActionEvent e) 
{ 
editPaste_actionPerformed(e); 
} 
}); 
menuEditFont.addActionListener(new ActionListener() 
{ 
public void actionPerformed(ActionEvent e) 
{ 
editFont_actionPerformed(e); 
} 
}); 
font.addActionListener(new ActionListener () 
{ 
public void actionPerformed(ActionEvent e) 
{ 
fontColor_actionPerformed(e); 
} 
});
back.addActionListener(new ActionListener () 
{ 
public void actionPerformed(ActionEvent e) 
{ 
backColor_actionPerformed(e); 
} 
});  
fileArea.getDocument().addDocumentListener(new DocumentListener() //接收文本文档的更改通知
{ 
public void insertUpdate(DocumentEvent e) //给出对文档执行了插入操作的通知
{ 
wasChange=isChange; 
isChange=true; 
} 
public void removeUpdate(DocumentEvent e) //给出移除了一部分文档的通知
{ 
wasChange=isChange; 
isChange=true; 
} 
public void changedUpdate(DocumentEvent e) //给出属性或属性集发生了更改的通知
{ 
wasChange=isChange; 
isChange=true; 
} 
}); 
setSize(500,450);  //设置窗体大小
menuBar.add(menuFile);
menuBar.add(menuEdit); 
menuFile.add(menuFileOpen); 
//返回一个 KeyStroke,它表示生成给定 KeyEvent 的快捷键事件。
menuFileOpen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));//快捷健; 
menuFile.add(menuFileSave); 
menuFileSave.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK)); 
menuFile.addSeparator(); //加入分隔符
menuFile.add(menuFileExit); 
menuFileExit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,InputEvent.CTRL_MASK)); 
menuEdit.add(menuEditCut); 
menuEditCut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_MASK)); 
menuEdit.add(menuEditPaste); 
menuEditPaste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));
menuEdit.add(menuEditFont); 
menuEditFont.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK));
menuEdit.addSeparator(); //加入分隔符
menuEdit.add(font); 
font.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));
menuEdit.add(back); 
back.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B,InputEvent.CTRL_MASK));
//以文本域为对象创建滚动条面板类的匿名实例,并将其加到框架的内容面板上
this.getContentPane().add(new JScrollPane(fileArea));
setJMenuBar(menuBar); //加载菜单栏
} 

public void fileOpen_actionPerformed(ActionEvent e) 
{ 
JFileChooser fileOpen=new JFileChooser(); //选择文件
fileOpen.addChoosableFileFilter(fileOpen.getFileFilter()); 
if(fileOpen.APPROVE_OPTION!=fileOpen.showOpenDialog(this))return; 
//以下是文件读 
try 
{ //从字符输入流中读取文本,缓冲各个字符
BufferedReader dataIn=new BufferedReader(new FileReader(fileOpen.getSelectedFile()));
String c=null; 
do 
{ 
c=dataIn.readLine(); 
if(c!=null) 
fileArea.append(c+"\n"); //在文本区域显示文件内容
} 
while(c!=null); 
} 
catch(Exception ex)   //捕捉异常
{ 
System.out.println("Catch exception:"+ex.toString()); //返回描述当前异常对象信息的字符串
} 
} 
public void exit() //具体关闭窗口操作响应
{ 
if(isChange==false) 
System.exit(1); 
else 
{ //弹出标准对话框,询问一个确认问题
int decision=JOptionPane.showConfirmDialog(this,"文件被改动\n"+"是否保存改动?", 
"警告",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE); 
if (decision == JOptionPane.YES_OPTION) //选保存则将文件写入计算机! 
{ 
try { 
JFileChooser fileSave = new JFileChooser(); 
fileSave.addChoosableFileFilter(fileSave.getFileFilter()); 
if (fileSave.APPROVE_OPTION != fileSave.showSaveDialog(this)) 
return; 
BufferedWriter dataOut =new BufferedWriter(new FileWriter(fileSave.getSelectedFile()+".txt")); 
String c = null; 
do { 
String str = fileArea.getText(); 
dataOut.write(str); 
dataOut.close(); 
} 
while (c != null); 
} 
catch (Exception e2) 
{ 
System.out.println("Catch exception:有错误!" + e2.toString()); 
} 
System.exit(1);
} 
else if (decision == JOptionPane.NO_OPTION) // 选否关闭窗口
System.exit(1); 
else if (decision == JOptionPane.CANCEL_OPTION); //选取消返回
; 
} 
} 
public void fileSave_actionPerformed(ActionEvent e1) 
{ //以下是将文件存入计算机! 
try 
{ 
JFileChooser fileSave=new JFileChooser(); 
fileSave.setDialogTitle("保存文件" ); 
fileSave.addChoosableFileFilter(fileSave.getFileFilter()); 
if(fileSave.APPROVE_OPTION!=fileSave.showSaveDialog(this))return; 
//默认为.txt扩展名保存
BufferedWriter dataOut=new BufferedWriter(new BufferedWriter(new FileWriter(fileSave.getSelectedFile()+".txt"))); 
String c=null; 
do 
{ 
String str=fileArea.getText(); 
dataOut.write(str); 
dataOut.close(); 
} 
while(c!=null); 
} 
catch(Exception e2) 
{ 
System.out.println("Catch exception:有错误!"+e2.toString()); 
} 
} 
 
public void editCut_actionPerformed(ActionEvent e) //剪切
{ 
fileArea.cut(); 
} 
public void editPaste_actionPerformed(ActionEvent e) //粘贴
{ 
fileArea.paste(); 
} 
public void editFont_actionPerformed(ActionEvent e) //字体
{ 
fontChooser=new MyFontChooser(this,fileArea.getFont());
      fontChooser.setLocation(400,30);//窗体显示的坐标
    fontChooser.setChoose(fileArea.getFont());
    fontChooser.setVisible(true);
    Font newFont=fontChooser.getChoose();
      if(newFont!=null)fileArea.setFont(newFont);
}
 
public void fontColor_actionPerformed(ActionEvent e) //设置字体的颜色
{ 
 JColorChooser fontColor=new JColorChooser(); 
 fileArea.setForeground(fontColor.showDialog(this,"字体颜色",Color.black)); 
} 
public void backColor_actionPerformed(ActionEvent e) //设置背景的颜色
{ 
 JColorChooser backColor=new JColorChooser(); 
 fileArea.setBackground(backColor.showDialog(this,"背景颜色",Color.black)); 
}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -