notepad.java
来自「主要是对于JAVA的编程的基本语言 希望能够帮得上你。」· Java 代码 · 共 640 行 · 第 1/2 页
JAVA
640 行
//新建菜单项单击事件
mniNew.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
strFileName=null;
setTitle("记事本"); //窗口标题栏复原
txaNote.setText(""); //清空文本区
}
});
//打开菜单项单击事件
mniOpen.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
openFile(); //打开文件
}
});
//保存菜单项单击事件
mniSave.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
saveFile(); //保存文件
}
});
//退出菜单项单击事件
mniExit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
if(isSaved==false){
int choice=JOptionPane.showConfirmDialog(null, "文件已修改,您是否要保存文件?", "记事本", JOptionPane.YES_NO_OPTION);
if(choice==JOptionPane.YES_OPTION){
saveFile(); //保存文件
}else
System.exit(0); //退出系统
}else
System.exit(0); //退出系统
}
});
//////////////////////////////////////////////////////////////////////
//剪切菜单项单击事件
mniCut.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
//获得选中的文本
String selectedText=txaNote.getSelectedText();
//由选中的文本创建StringSelection对象
StringSelection selection=new StringSelection(selectedText);
//将剪贴板的当前内容设置到指定的StringSelection对象
clipBoard.setContents(selection, null);
//把选中的文本替换为空串
txaNote.replaceRange("",txaNote.getSelectionStart(),txaNote.getSelectionEnd());
}
});
//复制菜单项单击事件
mniCopy.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
//获得选中的文本
String selectedText=txaNote.getSelectedText();
//由选中的文本创建StringSelection对象
StringSelection selection=new StringSelection(selectedText);
//将剪贴板的当前内容设置到指定的StringSelection对象
clipBoard.setContents(selection, null);
}
});
//粘贴菜单项单击事件
mniPaste.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
//从剪贴板获取可传输数据对象
Transferable contents=clipBoard.getContents(this);
if(contents!=null){
String strText=null;
try{
//从剪贴板可传输对象中获取可传输数据,并强制转化成字符串
strText=(String)contents.getTransferData(DataFlavor.stringFlavor);
}catch(Exception exception){
System.out.println(exception.getStackTrace());
}
//用剪贴板的数据替换文本区中选定的内容
txaNote.replaceRange(strText,txaNote.getSelectionStart(),txaNote.getSelectionEnd());
}
}
});
//删除菜单项单击事件
mniDelete.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
//把选中的文本替换为空串
txaNote.replaceRange("",txaNote.getSelectionStart(),txaNote.getSelectionEnd());
}
});
//黑色菜单项单击事件
rmiBlack.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
txaNote.setForeground(Color.BLACK);
}
});
//红色菜单项单击事件
rmiRed.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
txaNote.setForeground(Color.RED);
}
});
//蓝色菜单项单击事件
rmiBlue.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
txaNote.setForeground(Color.BLUE);
}
});
//黑体菜单项单击事件
rmiHT.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
txaNote.setFont(new Font("黑体",txaNote.getFont().getStyle(),txaNote.getFont().getSize()));
}
});
//宋体菜单项单击事件
rmiST.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
txaNote.setFont(new Font("宋体",txaNote.getFont().getStyle(),txaNote.getFont().getSize()));
}
});
//隶书菜单项单击事件
rmiLS.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
txaNote.setFont(new Font("隶书",txaNote.getFont().getStyle(),txaNote.getFont().getSize()));
}
});
//大号菜单项单击事件
rmiBig.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
txaNote.setFont(new Font(txaNote.getFont().getName(),txaNote.getFont().getStyle(),30));
}
});
//中号菜单项单击事件
rmiMiddle.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
txaNote.setFont(new Font(txaNote.getFont().getName(),txaNote.getFont().getStyle(),25));
}
});
//小号菜单项单击事件
rmiSmall.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
txaNote.setFont(new Font(txaNote.getFont().getName(),txaNote.getFont().getStyle(),20));
}
});
//自动换行菜单项单击事件
cmiWrap.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
if(cmiWrap.getState()){
scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
txaNote.setLineWrap(true);
}else{
scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
txaNote.setLineWrap(false);
}
}
});
/////////////////////////////////////////////////////////////////////
//帮助菜单单击事件
mniHelp.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
try {
Runtime.getRuntime().exec("cmd /c start swing/notepad.chm");
} catch (IOException e1) {
e1.printStackTrace();
}
}
});
//关于菜单单击事件
mniAbout.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null,"编写人员:泸职院电信系_华卫\n编写时间:2007年10月16日\n联系电话:3455124\n电子邮箱:maths007@163.com","记事本",JOptionPane.INFORMATION_MESSAGE);
}
});
////////////////////////////////////////////
/*
* 工具栏的按钮单击事件
*/
//新建按钮单击事件
btnNew.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
strFileName=null;
setTitle("记事本"); //窗口标题栏复原
txaNote.setText(""); //清空文本区
}
});
//打开按钮单击事件
btnOpen.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
openFile(); //打开文件
}
});
//保存按钮单击事件
btnSave.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
saveFile(); //保存文件
}
});
//剪切按钮单击事件
btnCut.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
//获得选中的文本
String selectedText=txaNote.getSelectedText();
//由选中的文本创建StringSelection对象
StringSelection selection=new StringSelection(selectedText);
//将剪贴板的当前内容设置到指定的StringSelection对象
clipBoard.setContents(selection, null);
//把选中的文本替换为空串
txaNote.replaceRange("",txaNote.getSelectionStart(),txaNote.getSelectionEnd());
}
});
//复制按钮单击事件
btnCopy.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
//获得选中的文本
String selectedText=txaNote.getSelectedText();
//由选中的文本创建StringSelection对象
StringSelection selection=new StringSelection(selectedText);
//将剪贴板的当前内容设置到指定的StringSelection对象
clipBoard.setContents(selection, null);
}
});
//粘贴按钮单击事件
btnPaste.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
//从剪贴板获取可传输数据对象
Transferable contents=clipBoard.getContents(this);
if(contents!=null){
String strText=null;
try{
//从剪贴板可传输对象中获取可传输数据,并强制转化成字符串
strText=(String)contents.getTransferData(DataFlavor.stringFlavor);
}catch(Exception exception){
System.out.println(exception.getStackTrace());
}
//用剪贴板的数据替换文本区中选定的内容
txaNote.replaceRange(strText,txaNote.getSelectionStart(),txaNote.getSelectionEnd());
}
}
});
}
//保存文件
public void saveFile(){
if(getTitle().length()==3){//新建文档
int returnVal=fileChooser.showSaveDialog(this);
if(returnVal==JFileChooser.APPROVE_OPTION){
try {
strFileName=fileChooser.getSelectedFile().getAbsolutePath();
FileWriter fw=new FileWriter(strFileName);
fw.write(txaNote.getText());
//窗口标题栏显示保存文件的路径及名称
setTitle("记事本 - "+strFileName);
fw.close();
isSaved=true; //保存文件标志设置为真
} catch (IOException e1) {
e1.printStackTrace();
}
}else{
JOptionPane.showMessageDialog(this,"您单击了取消按钮。","记事本",JOptionPane.WARNING_MESSAGE);
}
}else{//打开已有文档
try {
FileWriter fw=new FileWriter(strFileName);
fw.write(txaNote.getText());
fw.close();
isSaved=true; //保存文件标志设置为真
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
//打开文件
public void openFile(){
int returnVal=fileChooser.showOpenDialog(this);
if(returnVal==JFileChooser.APPROVE_OPTION){
strFileName=fileChooser.getSelectedFile().getAbsolutePath();
try {
BufferedReader br=new BufferedReader(new FileReader(strFileName));
strFileContent="";
String strNextLine; //用于存放文本文件的一行内容
while((strNextLine=br.readLine())!=null){
strFileContent=strFileContent+strNextLine+"\n";
}
//把文件内容显示在文本区中
txaNote.setText(strFileContent);
//窗口标题栏显示所打开的文件的路径及名称
setTitle("记事本 - "+strFileName);
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}else{
JOptionPane.showMessageDialog(null,"您单击了取消按钮。","记事本",JOptionPane.WARNING_MESSAGE);
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?