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

📄 notepad.java

📁 java记事本源码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
import java.awt.*; 
import java.awt.event.*; 
import java.awt.*; 
import javax.swing.*; 
import java.lang.*; 
import java.text.*; 
import java.io.*; 
import java.util.*; 
import javax.accessibility.*; 
import java.awt.datatransfer.*; 

 



public class Notepad extends JFrame implements ActionListener,MouseListener 
{ 
JPanel contentPane; 

JMenuBar jMenuBar1 = new JMenuBar(); 

//工具条 
JToolBar toolBar = new JToolBar(); 
JButton button1=new JButton(new ImageIcon("new.gif")); 
JButton button2=new JButton(new ImageIcon("open.gif")); 
JButton button3=new JButton(new ImageIcon("save.gif")); 

//文件菜单 
JMenu jMenuFile = new JMenu(); 
JMenuItem jMenuFileNew = new JMenuItem(); 
JMenuItem jMenuFileOpen = new JMenuItem(); 
JMenuItem jMenuFileSave = new JMenuItem(); 
JMenuItem jMenuFileSaveTo = new JMenuItem(); 
JMenuItem jMenuFileExit = new JMenuItem(); 

//帮助菜单 
JMenu jMenuHelp = new JMenu(); 
JMenuItem jMenuHelpAbout = new JMenuItem(); 
BorderLayout borderLayout1 = new BorderLayout(); 

//编辑菜单 
JMenu jMenuFileEdit = new JMenu(); 
JMenuItem jMenuFileCut = new JMenuItem(); 
JMenuItem jMenuFileCopy = new JMenuItem(); 
JMenuItem jMenuFilePaste = new JMenuItem(); 
JMenuItem jMenuFileDel = new JMenuItem(); 

//右键菜单 
JMenuItem jMenuMouseCut = new JMenuItem("剪切"); 
JMenuItem jMenuMouseCopy = new JMenuItem("复制"); 
JMenuItem jMenuMousePaste = new JMenuItem("粘贴"); 
JMenuItem jMenuMouseDel = new JMenuItem("删除"); 

//格式菜单 
JMenu jMenuFileForm = new JMenu(); 
JMenuItem jMenuFileFindNext = new JMenuItem(); 
JMenuItem jMenuFileSelect=new JMenuItem("全选"); 
JMenuItem jMenuFileTime = new JMenuItem("时间/日期(D)"); 
// JMenuItem jMenuFileLine = new JMenuItem("自动换行"); 
JMenuItem jMenuFileFont = new JMenuItem(); 
JMenuItem jcolor=new JMenuItem("颜色..."); 
JCheckBox jMenuCheckBox = new JCheckBox("自动换行",true); 

JTextArea jTextArea1 = new JTextArea(15,15); 
JLabel statubar=new JLabel("状态栏"); 
JPopupMenu pm=new JPopupMenu(); 

Calendar cal=Calendar.getInstance(); 

// 变量声明 
String filename; 
String filepath; 
String strtext=""; 
boolean bsaved = false; 
JFileChooser jFileChooser = new JFileChooser(); 
JColorChooser jColor=new JColorChooser(); 
FileDialog filedialog_save; 
BufferedWriter out; 
FileWriter tofile; 
Clipboard cb=Toolkit.getDefaultToolkit().getSystemClipboard(); 
int n; 
int i; 
int t; 
boolean check=true; 
FileDialog dog; 


//组件初始化 

public Notepad(){ 
contentPane = (JPanel) this.getContentPane(); 
contentPane.setLayout(borderLayout1); 
this.setBounds(110,100,500, 450); 
this.setFont(new Font("宋体", Font.PLAIN, 8)); 
this.setTitle("记事本"); 

jTextArea1.setDoubleBuffered(false); 
jTextArea1.setToolTipText("记事本"); 
jTextArea1.setVerifyInputWhenFocusTarget(true); 
jTextArea1.setText(""); 

contentPane.add(statubar,borderLayout1.SOUTH); 

toolBar.add(button1); 
toolBar.add(button2); 
toolBar.add(button3); 

jMenuFile.setText("文件"); 
jMenuFileExit.setText("退出"); 


jMenuHelp.setText("帮助"); 
jMenuHelpAbout.setText("关于"); 

jMenuFileNew.setText("新建(N)"); 
jMenuFileNew.setMnemonic(KeyEvent.VK_N); 
KeyStroke keynew=KeyStroke.getKeyStroke(KeyEvent.VK_N,Event.CTRL_MASK); 
jMenuFileNew.setAccelerator(keynew); 

jMenuFileOpen.setText("打开(O)..."); 
jMenuFileOpen.setMnemonic(KeyEvent.VK_O); 
KeyStroke keyopen=KeyStroke.getKeyStroke(KeyEvent.VK_O,Event.CTRL_MASK); 
jMenuFileOpen.setAccelerator(keyopen); 

jMenuFileSave.setText("保存(S)"); 
jMenuFileSave.setMnemonic(KeyEvent.VK_S); 
KeyStroke keysave=KeyStroke.getKeyStroke(KeyEvent.VK_S,Event.CTRL_MASK); 
jMenuFileSave.setAccelerator(keysave); 


jMenuFileSaveTo.setText("另存为(A)"); 


jMenuFileEdit.setText("编辑"); 
jMenuFileCut.setText("剪切(T)"); 
jMenuFileCut.setMnemonic(KeyEvent.VK_X); 
KeyStroke keycut=KeyStroke.getKeyStroke(KeyEvent.VK_O,Event.CTRL_MASK); 
jMenuFileCut.setAccelerator(keycut); 


jMenuFileCopy.setText("复制(C)"); 
jMenuFileCopy.setMnemonic(KeyEvent.VK_C); 
KeyStroke keycopy=KeyStroke.getKeyStroke(KeyEvent.VK_C,Event.CTRL_MASK); 
jMenuFileCopy.setAccelerator(keycopy); 


jMenuFilePaste.setText("粘贴(P)"); 
jMenuFilePaste.setMnemonic(KeyEvent.VK_V); 
KeyStroke keypaste=KeyStroke.getKeyStroke(KeyEvent.VK_V,Event.CTRL_MASK); 
jMenuFilePaste.setAccelerator(keypaste); 


jMenuFileDel.setText("删除(L)"); 

jMenuFileFindNext.setText("查找"); 
jMenuFileFindNext.setMnemonic(KeyEvent.VK_F); 
KeyStroke keyfind=KeyStroke.getKeyStroke(KeyEvent.VK_F,Event.CTRL_MASK); 
jMenuFileFindNext.setAccelerator(keyfind); 

jMenuFileForm.setText("格式"); 
jMenuFileFont.setText("字体"); 
// jMenuFileLine.setText("自动换行"); 
// jMenuCheckBox.setText("自动换行"); 

 

jMenuBar1.add(jMenuFile); 
jMenuBar1.add(jMenuFileEdit); 
jMenuBar1.add(jMenuFileForm); 
jMenuBar1.add(jMenuHelp); 


jMenuFile.add(jMenuFileNew); 
jMenuFile.add(jMenuFileOpen); 
jMenuFile.add(jMenuFileSave); 
jMenuFile.add(jMenuFileSaveTo); 

jMenuFile.addSeparator(); 

jMenuFile.add(jMenuFileExit); 


jMenuFileEdit.add(jMenuFileCut); 
jMenuFileEdit.add(jMenuFileCopy); 
jMenuFileEdit.add(jMenuFilePaste); 
jMenuFileEdit.add(jMenuFileDel); 

 

jMenuFileEdit.addSeparator(); 


// jMenuFileEdit.add(jMenuFileFind); 
jMenuFileEdit.add(jMenuFileFindNext); 
jMenuFileEdit.add(jMenuFileSelect); 
jMenuFileEdit.add(jMenuFileTime); 

// jMenuFileForm.add(jMenuFileLine); 
jMenuFileForm.add(jMenuFileFont); 
jMenuFileForm.add(jcolor); 
jMenuFileForm.add(jMenuCheckBox); 

jMenuHelp.add(jMenuHelpAbout); 


contentPane.add(jTextArea1, BorderLayout.CENTER); 
//鼠标菜单 
jTextArea1.add(pm); 
pm.add(jMenuMouseCut); 
pm.add(jMenuMouseCopy); 
pm.add(jMenuMousePaste); 
pm.add(jMenuMouseDel); 

//滚动条控件 
JScrollPane scroller = new JScrollPane(); 
JViewport port = scroller.getViewport(); 
contentPane.add("Center", scroller); 
contentPane.add("North",toolBar); 
port.add(jTextArea1); 

this.setJMenuBar(jMenuBar1); 


setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 


//添加菜单中的监听器 
jTextArea1.addMouseListener(this); 

File_new_actionAdapter fnew=new File_new_actionAdapter(); 
jMenuFileNew.addActionListener(fnew); 
button1.addActionListener(fnew); 

File_open_actionAdapter fopen=new File_open_actionAdapter(); 
jMenuFileOpen.addActionListener(fopen); 
button2.addActionListener(fopen); 

File_save_actionAdapter fsave=new File_save_actionAdapter(); 
jMenuFileSave.addActionListener(fsave); 
button3.addActionListener(fsave); 

File_saveto_actionAdapter fsaveto=new File_saveto_actionAdapter(); 
jMenuFileSaveTo.addActionListener(fsaveto); 

File_close_actionAdapter fclose=new File_close_actionAdapter(); 
jMenuFileExit.addActionListener(fclose); 

jMenuFileCut.addActionListener(this); 
jMenuFileCopy.addActionListener(this); 
jMenuFilePaste.addActionListener(this); 
jMenuFileDel.addActionListener(this); 
//鼠标事件 
jMenuMouseCut.addActionListener(this); 
jMenuMouseCopy.addActionListener(this); 
jMenuMousePaste.addActionListener(this); 
jMenuMouseDel.addActionListener(this); 

jMenuFileFindNext.addActionListener(this); 
jMenuFileSelect.addActionListener(this); 
jMenuFileTime.addActionListener(this); 

jMenuFileFont.addActionListener(this); 
// jMenuFileLine.addActionListener(this); 
jMenuCheckBox.addActionListener(this); 
jcolor.addActionListener(this); 
jMenuHelpAbout.addActionListener(this); 

show(); 
validate(); 
} 


//调用的函数 
public void File_new_actionPerformed(ActionEvent e){ 
FileNew(); 
} 

public void File_open_actionPerformed(ActionEvent e){ 
FileOpen(); 
} 

public void File_save_actionPerformed(ActionEvent e){ 
FileSave(); 
} 

public void File_saveto_actionPerformed(ActionEvent e){ 
FileSaveTo(); 
} 

public void File_close_actionPerformed(ActionEvent e){ 
FileClose(); 
} 

public void mouseReleased(MouseEvent e){ 
if(e.isPopupTrigger()) 
pm.show(this,e.getX(),e.getY()); 
} 

public void mouseClicked(MouseEvent e){} 
public void mouseEntered(MouseEvent e){} 
public void mouseExited(MouseEvent e){} 
public void mousePressed(MouseEvent e){} 


boolean toExit() 
{ 
if(bsaved) 
return true; 

int i=JOptionPane.showConfirmDialog(this,"是否保存文件","Jishiben",JOptionPane.YES_NO_CANCEL_OPTION); 
switch(i) 
{ 
case JOptionPane.YES_OPTION: 
return true; 
case JOptionPane.NO_OPTION: 
return false; 
case JOptionPane.CANCEL_OPTION: 
return false; 
default: 
return false; 
} 
} 


//调用文件新建 

void FileNew() 
{ 
if(bsaved){ 
this.jTextArea1.setText(""); 
this.jTextArea1.setFocusable(true); 
this.setTitle("未命名"); 
this.statubar.setText("新建文本"); 
} 
else FileSaveTo(); 
} 

//调用文件打开 

void FileOpen() 
{ 
String strFileOpen=""; 
if(bsaved){ 
try{ 
if(this.jFileChooser.APPROVE_OPTION==this.jFileChooser.showOpenDialog(this)){ 
strFileOpen=this.jFileChooser.getSelectedFile().getPath(); 
File file=new File(strFileOpen); 
int flength=(int)file.length(); 
int num=0; 
FileReader fReader=new FileReader(file); 
char[] data=new char[flength]; 
while(fReader.ready()){ 
num+=fReader.read(data,num,flength-num); 
} 
fReader.close(); 
jTextArea1.setText(new String(data,0,num)); 
filename=strFileOpen; 
this.setTitle(filename); 
statubar.setText("打开:"+filename); 
updateFname(); 
bsaved=false; 
} 
else 
return ; 
}catch(Exception e){ 
statubar.setText("Error Open:"+e.getMessage()); 
} 
} 
else 
FileSave(); 

} 

//调用保存对话框 

boolean FileSave() 
{ 
if(filename==null){ 
return FileSaveTo(); 
} 
if(!bsaved){ 
if(filename.length()!=0){ 
try{ 
File saveFile=new File(filename); 

FileWriter fw=new FileWriter(saveFile); 
fw.write(jTextArea1.getText()); 
fw.close(); 
statubar.setText("保存文件:"+filename); 
bsaved=true; 
updateFname(); 
}catch(Exception e) 
{ 
statubar.setText("保存出错: "+e.getMessage()); 
} 
} 
else{ 
return FileSaveTo(); 
} 
} 
return true; 

} 

//调用另存对话框 

boolean FileSaveTo() 
{ 
if(jFileChooser.APPROVE_OPTION==jFileChooser.showSaveDialog(this)){ 
filename=jFileChooser.getSelectedFile().getPath(); 

return FileSave(); 
} 
else{ 
return false; 
} 
} 

//更改标题 

void updateFname(){ 
String str; 
if(filename==null){ 
str="无标题"; 
} 
else{ 
str=filename; 
} 
if(!bsaved){ 
str="记事本"+str; 
} 
this.setTitle(str); 
this.repaint(); 
} 

//文件关闭 

void FileClose(){ 
if(!bsaved){ 
if(toExit()){ 
FileSave(); 
} 
else { 
System.exit(0); 
} 
} 
else{ 
System.exit(0); 
} 
} 

//调用编辑剪切 

void FileCut (ActionEvent e) 
{ 

try{ 
String str=this.jTextArea1.getSelectedText(); 
if(str.length()!=0){ 
StringSelection s = new StringSelection(str); 
cb.setContents(s,s); 
this.jTextArea1.replaceRange("",this.jTextArea1.getSelectionStart(),this.jTextArea1.getSelectionEnd()); 
bsaved =false; 
} 
}catch(Exception ex){ 
this.statubar.setText("剪切出错:"+ex.getMessage()); 
} 

} 

//调用编辑复制 

void FileCopy(ActionEvent e) 
{ 

try{ 
String str=this.jTextArea1.getSelectedText(); 
if(str.length()!=0){ 
StringSelection s = new StringSelection(str); 
cb.setContents(s,s); 
} 
}catch(Exception ex) 
{ 
this.statubar.setText("复制出错!"+ex.getMessage()); 
} 

} 

//调用编辑粘贴 

void FilePaste(ActionEvent e) 
{ 
try 
{ 
Transferable tr =cb.getContents(this); 
if (tr != null) 
{ 
String s = (String)tr.getTransferData(DataFlavor.stringFlavor); 
if(s!=null) 
jTextArea1.replaceRange(s,jTextArea1.getSelectionStart(),jTextArea1.getSelectionEnd()); 
//this.jTextArea1.insert(s,this.jTextArea1.getCaretPosition()); 
bsaved =false; 
} 
} 
catch (Exception err) 
{ 
err.printStackTrace(); 
} 
} 

//调用编辑删除 

void FileDel(ActionEvent e) 
{ 
jTextArea1.replaceRange("",jTextArea1.getSelectionStart(),jTextArea1.getSelectionEnd()); 
bsaved =false; 
} 

⌨️ 快捷键说明

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