Java记事本源代码完整.docx
《Java记事本源代码完整.docx》由会员分享,可在线阅读,更多相关《Java记事本源代码完整.docx(20页珍藏版)》请在冰豆网上搜索。
Java记事本源代码完整
/**
*作品:
记事本
*作者:
***
*功能:
简单的文字编辑
*/
importjava.awt.*;
importjava.awt.event.*;
importjava.io.*;
importjavax.swing.*;
importjavax.swing.event.ChangeEvent;
importjavax.swing.event.ChangeListener;
classNotePadextendsJFrame{
privateJMenuBarmenuBar;
privateJMenufielMenu,editMenu,formMenu,aboutMenu;
privateJMenuItemnewMenuItem,openMenuItem,saveMenuItem,exitMenuItem;
privateJMenuItemcutMenuItem,copyMenuItem,pasteMenuItem,foundItem,replaceItem,selectAll;
privateJMenuItemfont,about;
privateJTextAreatextArea;
privateJFramefoundFrame,replaceFrame;
privateJCheckBoxMenuItemwrapline;
privateJTextFieldtextField1=newJTextField(15);
privateJTextFieldtextField2=newJTextField(15);
privateJButtonstartButton,replaceButton,reallButton;
intstart=0;
Stringvalue;
Filefile=null;
JFileChooserfileChooser=newJFileChooser();
booleanwrap=false;
publicNotePad(){
//创建文本域
textArea=newJTextArea();
add(newJScrollPane(textArea),BorderLayout.CENTER);
//创建文件菜单及文件菜单项
fielMenu=newJMenu("文件");
fielMenu.setFont(newFont("微软雅黑",0,15));
newMenuItem=newJMenuItem("新建",newImageIcon("icons\\new24.gif"));
newMenuItem.setFont(newFont("微软雅黑",Font.BOLD,13));
newMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));
newMenuItem.addActionListener(listener);
openMenuItem=newJMenuItem("打开",newImageIcon("icons\\open24.gif"));
openMenuItem.setFont(newFont("微软雅黑",Font.BOLD,13));
openMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
openMenuItem.addActionListener(listener);
saveMenuItem=newJMenuItem("保存",newImageIcon("icons\\save.gif"));
saveMenuItem.setFont(newFont("微软雅黑",Font.BOLD,13));
saveMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
saveMenuItem.addActionListener(listener);
exitMenuItem=newJMenuItem("退出",newImageIcon("icons\\exit24.gif"));
exitMenuItem.setFont(newFont("微软雅黑",Font.BOLD,13));
exitMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,InputEvent.CTRL_MASK));
exitMenuItem.addActionListener(listener);
//创建编辑菜单及菜单项
editMenu=newJMenu("编辑");
editMenu.setFont(newFont("微软雅黑",0,15));
cutMenuItem=newJMenuItem("剪切",newImageIcon("icons\\cut24.gif"));
cutMenuItem.setFont(newFont("微软雅黑",Font.BOLD,13));
cutMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));
cutMenuItem.addActionListener(listener);
copyMenuItem=newJMenuItem("复制",newImageIcon("icons\\copy24.gif"));
copyMenuItem.setFont(newFont("微软雅黑",Font.BOLD,13));
copyMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
copyMenuItem.addActionListener(listener);
pasteMenuItem=newJMenuItem("粘贴",newImageIcon("icons\\paste24.gif"));
pasteMenuItem.setFont(newFont("微软雅黑",Font.BOLD,13));
pasteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));
pasteMenuItem.addActionListener(listener);
foundItem=newJMenuItem("查找");
foundItem.setFont(newFont("微软雅黑",Font.BOLD,13));
foundItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK));
foundItem.addActionListener(listener);
replaceItem=newJMenuItem("替换");
replaceItem.setFont(newFont("微软雅黑",Font.BOLD,13));
replaceItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,InputEvent.CTRL_MASK));
replaceItem.addActionListener(listener);
selectAll=newJMenuItem("全选");
selectAll.setFont(newFont("微软雅黑",Font.BOLD,13));
selectAll.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));
selectAll.addActionListener(listener);
//创建格式菜单及菜单项
formMenu=newJMenu("格式");
formMenu.setFont(newFont("微软雅黑",0,15));
wrapline=newJCheckBoxMenuItem("自动换行");
wrapline.setFont(newFont("微软雅黑",Font.BOLD,13));
wrapline.addActionListener(listener);
wrapline.addChangeListener(newChangeListener(){
publicvoidstateChanged(ChangeEvente){
if(wrapline.isSelected()){
textArea.setLineWrap(true);
}
else
textArea.setLineWrap(false);
}
});
font=newJMenuItem("字体");
font.setFont(newFont("微软雅黑",Font.BOLD,13));
font.addActionListener(listener);
//创建关于菜单
aboutMenu=newJMenu("关于");
aboutMenu.setFont(newFont("微软雅黑",0,15));
about=newJMenuItem("记事本……");
about.setFont(newFont("微软雅黑",Font.BOLD,13));
about.addActionListener(listener);
//添加文件菜单项
fielMenu.add(newMenuItem);
fielMenu.add(openMenuItem);
fielMenu.add(saveMenuItem);
fielMenu.addSeparator();
fielMenu.add(exitMenuItem);
//添加编辑菜单项
editMenu.add(cutMenuItem);
editMenu.add(copyMenuItem);
editMenu.add(pasteMenuItem);
editMenu.add(foundItem);
editMenu.add(replaceItem);
editMenu.addSeparator();
editMenu.add(selectAll);
//添加格式菜单项
formMenu.add(wrapline);
formMenu.add(font);
//添加关于菜单项
aboutMenu.add(about);
//添加菜单
menuBar=newJMenuBar();
menuBar.add(fielMenu);
menuBar.add(editMenu);
menuBar.add(formMenu);
menuBar.add(aboutMenu);
setJMenuBar(menuBar);
//创建两个框架,用作查找和替换
foundFrame=newJFrame();
replaceFrame=newJFrame();
//创建两个文本框
textField1=newJTextField(15);
textField2=newJTextField(15);
startButton=newJButton("开始");
startButton.addActionListener(listener);
replaceButton=newJButton("替换为");
replaceButton.addActionListener(listener);
reallButton=newJButton("全部替换");
reallButton.addActionListener(listener);
}
//创建菜单项事件监听器
ActionListenerlistener=newActionListener(){
publicvoidactionPerformed(ActionEvente){
Stringname=e.getActionCommand();
if(e.getSource()instanceofJMenuItem){
if("新建".equals(name)){
textArea.setText("");
file=null;
}
if("打开".equals(name)){
if(file!
=null){
fileChooser.setSelectedFile(file);
}
intreturnVal=fileChooser.showOpenDialog(NotePad.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=fileChooser.getSelectedFile();
}
try{
FileReaderreader=newFileReader(file);
intlen=(int)file.length();
char[]array=newchar[len];
reader.read(array,0,len);
reader.close();
textArea.setText(newString(array));
}
catch(Exceptione_open){
e_open.printStackTrace();
}
}
}
if("保存".equals(name)){
if(file!
=null){
fileChooser.setSelectedFile(file);
}
intreturnVal=fileChooser.showSaveDialog(NotePad.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=fileChooser.getSelectedFile();
}
try{
FileWriterwriter=newFileWriter(file);
writer.write(textArea.getText());
writer.close();
}
catch(Exceptione_save){
e_save.getStackTrace();
}
}
if("退出".equals(name)){
System.exit(0);
}
if("剪切".equals(name)){
textArea.cut();
}
if("复制".equals(name)){
textArea.copy();
}
if("粘贴".equals(name)){
textArea.paste();
}
if("查找".equals(name)){
value=textArea.getText();
foundFrame.add(textField1,BorderLayout.CENTER);
foundFrame.add(startButton,BorderLayout.SOUTH);
foundFrame.setLocation(300,300);
foundFrame.setTitle("查找");
foundFrame.pack();
foundFrame.setVisible(true);
foundFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
if("替换".equals(name)){
value=textArea.getText();
JLabellabel1=newJLabel("查找内容:
");
JLabellabel2=newJLabel("替换为:
");
JPanelpanel1=newJPanel();
panel1.setLayout(newGridLayout(2,2));
JPanelpanel2=newJPanel();
panel2.setLayout(newGridLayout(1,3));
replaceFrame.add(panel1,BorderLayout.NORTH);
replaceFrame.add(panel2,BorderLayout.CENTER);
panel1.add(label1);
panel1.add(textField1);
panel1.add(label2);
panel1.add(textField2);
panel2.add(startButton);
panel2.add(replaceButton);
panel2.add(reallButton);
replaceFrame.setTitle("替换");
replaceFrame.setLocation(300,300);
replaceFrame.pack();
replaceFrame.setVisible(true);
replaceFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
if("开始".equals(name)||"下一个".equals(name)){
Stringtemp=textField1.getText();
ints=value.indexOf(temp,start);
if(value.indexOf(temp,start)!
=-1){
textArea.setSelectionStart(s);
textArea.setSelectionEnd(s+temp.length());
textArea.setSelectedTextColor(Color.GREEN);
start=s+1;
startButton.setText("下一个");
}else{
JOptionPane.showMessageDialog(foundFrame,"查找完毕!
","提示",0,newImageIcon("icons\\search.gif"));
foundFrame.dispose();
}
}
if("替换为".equals(name)){
Stringtemp=textField1.getText();
ints=value.indexOf(temp,start);
if(value.indexOf(temp,start)!
=-1){
textArea.setSelectionStart(s);
textArea.setSelectionEnd(s+temp.length());
textArea.setSelectedTextColor(Color.GREEN);
start=s+1;
textArea.replaceSelection(textField2.getText());
}else{
JOptionPane.showMessageDialog(foundFrame,"查找完毕!
","提示",0,newImageIcon("icons\\search.gif"));
foundFrame.dispose();
}
}
if("全部替换".equals(name)){
Stringtemp=textArea.getText();
temp=temp.replaceAll(textField1.getText(),textField2.getText());
textArea.setText(temp);
}
if("全选".equals(name)){
textArea.selectAll();
}
if("字体".equals(name)){
FontDialogfontDialog=newFontDialog(NotePad.this);
fontDialog.setVisible(true);
if(textArea.getFont()!
=fontDialog.getFont()){
textArea.setFont(fontDialog.getFont());
}
}
if("记事本……".equals(name)){
AboutDialogaboutDialo