I have also created a video tutorial if you prefer that, watch it below:
First, copy the code below.
Next, open note pad on your PC and paste the code.
Click CTRL + S to save the code.
Under file type, select All file, and save as .html.
NOTE: Whatever name you give to your game, make sure you save as .html.
Best Programming Notepad
Now, you can go to the folder where you saved the code file and open it with any browser that supports HTML 5.
Recommended browsers: Chrome/Firefox.
Enjoy!
Anyways, you can also download and copy the code in the Notepad snake game code PDF below.
If you found the article helpful, don't forget to share by using the share buttons below.
Feel free to drop a comment below.
Notepad in Java with source code: We can develop Notepad in java with the help of AWT/Swing with event handling. Let's see the code of creating Notepad in java.
import java.io.*;import java.util.Date;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;/************************************/class FileOperation{Notepad npd;boolean saved;boolean newFileFlag;String fileName;String applicationTitle='Notepad - JavaTpoint';File fileRef;JFileChooser chooser;/////////////////////////////boolean isSave(){return saved;}void setSave(boolean saved){this.saved=saved;}String getFileName(){return new String(fileName);}void setFileName(String fileName){this.fileName=new String(fileName);}/////////////////////////FileOperation(Notepad npd){this.npd=npd;saved=true;newFileFlag=true;fileName=new String('Untitled');fileRef=new File(fileName);this.npd.f.setTitle(fileName+' - '+applicationTitle);chooser=new JFileChooser();chooser.addChoosableFileFilter(new MyFileFilter('.java','Java Source Files(*.java)'));chooser.addChoosableFileFilter(new MyFileFilter('.txt','Text Files(*.txt)'));chooser.setCurrentDirectory(new File('.'));}//////////////////////////////////////boolean saveFile(File temp){FileWriter fout=null;try{fout=new FileWriter(temp);fout.write(npd.ta.getText());}catch(IOException ioe){updateStatus(temp,false);return false;}finally{try{fout.close();}catch(IOException excp){}}updateStatus(temp,true);return true;}////////////////////////boolean saveThisFile(){if(!newFileFlag) {return saveFile(fileRef);}return saveAsFile();}////////////////////////////////////boolean saveAsFile(){File temp=null;chooser.setDialogTitle('Save As..');chooser.setApproveButtonText('Save Now'); chooser.setApproveButtonMnemonic(KeyEvent.VK_S);chooser.setApproveButtonToolTipText('Click me to save!');do{if(chooser.showSaveDialog(this.npd.f)!=JFileChooser.APPROVE_OPTION) return false;temp=chooser.getSelectedFile();if(!temp.exists()) break;if( JOptionPane.showConfirmDialog( this.npd.f,'<html>'+temp.getPath()+' already exists.<br>Do you want to replace it?<html>', 'Save As',JOptionPane.YES_NO_OPTION )JOptionPane.YES_OPTION) break;}while(true);return saveFile(temp);}////////////////////////boolean openFile(File temp){FileInputStream fin=null;BufferedReader din=null;try{fin=new FileInputStream(temp);din=new BufferedReader(new InputStreamReader(fin));String str=' ';while(str!=null){str=din.readLine();if(strnull)break;this.npd.ta.append(str+'n');}}catch(IOException ioe){updateStatus(temp,false);return false;}finally{try{din.close();fin.close();}catch(IOException excp){}}updateStatus(temp,true);this.npd.ta.setCaretPosition(0);return true;}///////////////////////void openFile(){if(!confirmSave()) return;chooser.setDialogTitle('Open File..');chooser.setApproveButtonText('Open this'); chooser.setApproveButtonMnemonic(KeyEvent.VK_O);chooser.setApproveButtonToolTipText('Click me to open the selected file.!');File temp=null;do{if(chooser.showOpenDialog(this.npd.f)!=JFileChooser.APPROVE_OPTION) return;temp=chooser.getSelectedFile();if(temp.exists()) break;JOptionPane.showMessageDialog(this.npd.f, '<html>'+temp.getName()+'<br>file not found.<br>'+ 'Please verify the correct file name was given.<html>', 'Open', JOptionPane.INFORMATION_MESSAGE);} while(true);this.npd.ta.setText(');if(!openFile(temp)) { fileName='Untitled'; saved=true; this.npd.f.setTitle(fileName+' - '+applicationTitle); }if(!temp.canWrite()) newFileFlag=true;}////////////////////////void updateStatus(File temp,boolean saved){if(saved){this.saved=true;fileName=new String(temp.getName());if(!temp.canWrite()) {fileName+='(Read only)'; newFileFlag=true;}fileRef=temp;npd.f.setTitle(fileName + ' - '+applicationTitle);npd.statusBar.setText('File : '+temp.getPath()+' saved/opened successfully.');newFileFlag=false;}else{npd.statusBar.setText('Failed to save/open : '+temp.getPath());}}///////////////////////boolean confirmSave(){String strMsg='<html>The text in the '+fileName+' file has been changed.<br>'+ 'Do you want to save the changes?<html>';if(!saved){int x=JOptionPane.showConfirmDialog(this.npd.f,strMsg,applicationTitle,JOptionPane.YES_NO_CANCEL_OPTION);if(xJOptionPane.CANCEL_OPTION) return false;if(xJOptionPane.YES_OPTION && !saveAsFile()) return false;}return true;}///////////////////////////////////////void newFile(){if(!confirmSave()) return;this.npd.ta.setText(');fileName=new String('Untitled');fileRef=new File(fileName);saved=true;newFileFlag=true;this.npd.f.setTitle(fileName+' - '+applicationTitle);}//////////////////////////////////////}// end defination of class FileOperation/************************************/public class Notepad implements ActionListener, MenuConstants{JFrame f;JTextArea ta;JLabel statusBar;private String fileName='Untitled';private boolean saved=true;String applicationName='Javapad';String searchString, replaceString;int lastSearchIndex;FileOperation fileHandler;FontChooser fontDialog=null;FindDialog findReplaceDialog=null; JColorChooser bcolorChooser=null;JColorChooser fcolorChooser=null;JDialog backgroundDialog=null;JDialog foregroundDialog=null;JMenuItem cutItem,copyItem, deleteItem, findItem, findNextItem,replaceItem, gotoItem, selectAllItem;/****************************/Notepad(){f=new JFrame(fileName+' - '+applicationName);ta=new JTextArea(30,60);statusBar=new JLabel('|| Ln 1, Col 1 ',JLabel.RIGHT);f.add(new JScrollPane(ta),BorderLayout.CENTER);f.add(statusBar,BorderLayout.SOUTH);f.add(new JLabel(' '),BorderLayout.EAST);f.add(new JLabel(' '),BorderLayout.WEST);createMenuBar(f);//f.setSize(350,350);f.pack();f.setLocation(100,50);f.setVisible(true);f.setLocation(150,50);f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);fileHandler=new FileOperation(this);/////////////////////ta.addCaretListener(new CaretListener(){public void caretUpdate(CaretEvent e){int lineNumber=0, column=0, pos=0;try{pos=ta.getCaretPosition();lineNumber=ta.getLineOfOffset(pos);column=pos-ta.getLineStartOffset(lineNumber);}catch(Exception excp){}if(ta.getText().length()0){lineNumber=0; column=0;}statusBar.setText('|| Ln '+(lineNumber+1)+', Col '+(column+1));}});//////////////////DocumentListener myListener = new DocumentListener(){public void changedUpdate(DocumentEvent e){fileHandler.saved=false;}public void removeUpdate(DocumentEvent e){fileHandler.saved=false;}public void insertUpdate(DocumentEvent e){fileHandler.saved=false;}};ta.getDocument().addDocumentListener(myListener);/////////WindowListener frameClose=new WindowAdapter(){public void windowClosing(WindowEvent we){if(fileHandler.confirmSave())System.exit(0);}};f.addWindowListener(frameClose);///////////////////*ta.append('Hello dear hello hi');ta.append('nwho are u dear mister hello');ta.append('nhello bye hel');ta.append('nHello');ta.append('nMiss u mister hello hell');fileHandler.saved=true;*/}////////////////////////////////////void goTo(){int lineNumber=0;try{lineNumber=ta.getLineOfOffset(ta.getCaretPosition())+1;String tempStr=JOptionPane.showInputDialog(f,'Enter Line Number:','+lineNumber);if(tempStrnull) {return;}lineNumber=Integer.parseInt(tempStr);ta.setCaretPosition(ta.getLineStartOffset(lineNumber-1));}catch(Exception e){}}///////////////////////////////////public void actionPerformed(ActionEvent ev){String cmdText=ev.getActionCommand();////////////////////////////////////if(cmdText.equals(fileNew)) fileHandler.newFile();else if(cmdText.equals(fileOpen)) fileHandler.openFile();////////////////////////////////////else if(cmdText.equals(fileSave)) fileHandler.saveThisFile();////////////////////////////////////else if(cmdText.equals(fileSaveAs)) fileHandler.saveAsFile();////////////////////////////////////else if(cmdText.equals(fileExit)) {if(fileHandler.confirmSave())System.exit(0);}////////////////////////////////////else if(cmdText.equals(filePrint))JOptionPane.showMessageDialog( Notepad.this.f, 'Get ur printer repaired first! It seems u dont have one!', 'Bad Printer', JOptionPane.INFORMATION_MESSAGE );////////////////////////////////////else if(cmdText.equals(editCut)) ta.cut();////////////////////////////////////else if(cmdText.equals(editCopy)) ta.copy();////////////////////////////////////else if(cmdText.equals(editPaste)) ta.paste();////////////////////////////////////else if(cmdText.equals(editDelete)) ta.replaceSelection(');////////////////////////////////////else if(cmdText.equals(editFind)){if(Notepad.this.ta.getText().length()0) return; // text box have no textif(findReplaceDialognull) findReplaceDialog=new FindDialog(Notepad.this.ta);findReplaceDialog.showDialog(Notepad.this.f,true);//find}////////////////////////////////////else if(cmdText.equals(editFindNext)){if(Notepad.this.ta.getText().length()0) return; // text box have no textif(findReplaceDialognull) statusBar.setText('Use Find option of Edit Menu first !!!!');else findReplaceDialog.findNextWithSelection();}////////////////////////////////////else if(cmdText.equals(editReplace)){if(Notepad.this.ta.getText().length()0) return; // text box have no textif(findReplaceDialognull) findReplaceDialog=new FindDialog(Notepad.this.ta);findReplaceDialog.showDialog(Notepad.this.f,false);//replace}////////////////////////////////////else if(cmdText.equals(editGoTo)){if(Notepad.this.ta.getText().length()0) return; // text box have no textgoTo();}////////////////////////////////////else if(cmdText.equals(editSelectAll)) ta.selectAll();////////////////////////////////////else if(cmdText.equals(editTimeDate)) ta.insert(new Date().toString(),ta.getSelectionStart());////////////////////////////////////else if(cmdText.equals(formatWordWrap)){JCheckBoxMenuItem temp=(JCheckBoxMenuItem)ev.getSource();ta.setLineWrap(temp.isSelected());}////////////////////////////////////else if(cmdText.equals(formatFont)){if(fontDialognull) fontDialog=new FontChooser(ta.getFont());if(fontDialog.showDialog(Notepad.this.f,'Choose a font')) Notepad.this.ta.setFont(fontDialog.createFont());}////////////////////////////////////else if(cmdText.equals(formatForeground)) showForegroundColorDialog();////////////////////////////////////else if(cmdText.equals(formatBackground)) showBackgroundColorDialog();////////////////////////////////////else if(cmdText.equals(viewStatusBar)){JCheckBoxMenuItem temp=(JCheckBoxMenuItem)ev.getSource();statusBar.setVisible(temp.isSelected());}////////////////////////////////////else if(cmdText.equals(helpAboutNotepad)){JOptionPane.showMessageDialog(Notepad.this.f,aboutText,'Dedicated 2 u!',JOptionPane.INFORMATION_MESSAGE);}else statusBar.setText('This '+cmdText+' command is yet to be implemented');}//action Performed////////////////////////////////////void showBackgroundColorDialog(){if(bcolorChoosernull) bcolorChooser=new JColorChooser();if(backgroundDialognull) backgroundDialog=JColorChooser.createDialog (Notepad.this.f, formatBackground, false, bcolorChooser, new ActionListener() {public void actionPerformed(ActionEvent evvv){ Notepad.this.ta.setBackground(bcolorChooser.getColor());}}, null); backgroundDialog.setVisible(true);}////////////////////////////////////void showForegroundColorDialog(){if(fcolorChoosernull) fcolorChooser=new JColorChooser();if(foregroundDialognull) foregroundDialog=JColorChooser.createDialog (Notepad.this.f, formatForeground, false, fcolorChooser, new ActionListener() {public void actionPerformed(ActionEvent evvv){ Notepad.this.ta.setForeground(fcolorChooser.getColor());}}, null); foregroundDialog.setVisible(true);}///////////////////////////////////JMenuItem createMenuItem(String s, int key,JMenu toMenu,ActionListener al){JMenuItem temp=new JMenuItem(s,key);temp.addActionListener(al);toMenu.add(temp);return temp;}////////////////////////////////////JMenuItem createMenuItem(String s, int key,JMenu toMenu,int aclKey,ActionListener al){JMenuItem temp=new JMenuItem(s,key);temp.addActionListener(al);temp.setAccelerator(KeyStroke.getKeyStroke(aclKey,ActionEvent.CTRL_MASK));toMenu.add(temp);return temp;}////////////////////////////////////JCheckBoxMenuItem createCheckBoxMenuItem(String s, int key,JMenu toMenu,ActionListener al){JCheckBoxMenuItem temp=new JCheckBoxMenuItem(s);temp.setMnemonic(key);temp.addActionListener(al);temp.setSelected(false);toMenu.add(temp);return temp;}////////////////////////////////////JMenu createMenu(String s,int key,JMenuBar toMenuBar){JMenu temp=new JMenu(s);temp.setMnemonic(key);toMenuBar.add(temp);return temp;}/*********************************/void createMenuBar(JFrame f){JMenuBar mb=new JMenuBar();JMenuItem temp;JMenu fileMenu=createMenu(fileText,KeyEvent.VK_F,mb);JMenu editMenu=createMenu(editText,KeyEvent.VK_E,mb);JMenu formatMenu=createMenu(formatText,KeyEvent.VK_O,mb);JMenu viewMenu=createMenu(viewText,KeyEvent.VK_V,mb);JMenu helpMenu=createMenu(helpText,KeyEvent.VK_H,mb);createMenuItem(fileNew,KeyEvent.VK_N,fileMenu,KeyEvent.VK_N,this);createMenuItem(fileOpen,KeyEvent.VK_O,fileMenu,KeyEvent.VK_O,this);createMenuItem(fileSave,KeyEvent.VK_S,fileMenu,KeyEvent.VK_S,this);createMenuItem(fileSaveAs,KeyEvent.VK_A,fileMenu,this);fileMenu.addSeparator();temp=createMenuItem(filePageSetup,KeyEvent.VK_U,fileMenu,this);temp.setEnabled(false);createMenuItem(filePrint,KeyEvent.VK_P,fileMenu,KeyEvent.VK_P,this);fileMenu.addSeparator();createMenuItem(fileExit,KeyEvent.VK_X,fileMenu,this);temp=createMenuItem(editUndo,KeyEvent.VK_U,editMenu,KeyEvent.VK_Z,this);temp.setEnabled(false);editMenu.addSeparator();cutItem=createMenuItem(editCut,KeyEvent.VK_T,editMenu,KeyEvent.VK_X,this);copyItem=createMenuItem(editCopy,KeyEvent.VK_C,editMenu,KeyEvent.VK_C,this);createMenuItem(editPaste,KeyEvent.VK_P,editMenu,KeyEvent.VK_V,this);deleteItem=createMenuItem(editDelete,KeyEvent.VK_L,editMenu,this);deleteItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,0));editMenu.addSeparator();findItem=createMenuItem(editFind,KeyEvent.VK_F,editMenu,KeyEvent.VK_F,this);findNextItem=createMenuItem(editFindNext,KeyEvent.VK_N,editMenu,this);findNextItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F3,0));replaceItem=createMenuItem(editReplace,KeyEvent.VK_R,editMenu,KeyEvent.VK_H,this);gotoItem=createMenuItem(editGoTo,KeyEvent.VK_G,editMenu,KeyEvent.VK_G,this);editMenu.addSeparator();selectAllItem=createMenuItem(editSelectAll,KeyEvent.VK_A,editMenu,KeyEvent.VK_A,this);createMenuItem(editTimeDate,KeyEvent.VK_D,editMenu,this).setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F5,0));createCheckBoxMenuItem(formatWordWrap,KeyEvent.VK_W,formatMenu,this);createMenuItem(formatFont,KeyEvent.VK_F,formatMenu,this);formatMenu.addSeparator();createMenuItem(formatForeground,KeyEvent.VK_T,formatMenu,this);createMenuItem(formatBackground,KeyEvent.VK_P,formatMenu,this);createCheckBoxMenuItem(viewStatusBar,KeyEvent.VK_S,viewMenu,this).setSelected(true);/************For Look and Feel***/LookAndFeelMenu.createLookAndFeelMenuItem(viewMenu,this.f);temp=createMenuItem(helpHelpTopic,KeyEvent.VK_H,helpMenu,this);temp.setEnabled(false);helpMenu.addSeparator();createMenuItem(helpAboutNotepad,KeyEvent.VK_A,helpMenu,this);MenuListener editMenuListener=new MenuListener(){ public void menuSelected(MenuEvent evvvv) { if(Notepad.this.ta.getText().length()0) { findItem.setEnabled(false); findNextItem.setEnabled(false); replaceItem.setEnabled(false); selectAllItem.setEnabled(false); gotoItem.setEnabled(false); } else { findItem.setEnabled(true); findNextItem.setEnabled(true); replaceItem.setEnabled(true); selectAllItem.setEnabled(true); gotoItem.setEnabled(true); } if(Notepad.this.ta.getSelectionStart()ta.getSelectionEnd()) { cutItem.setEnabled(false); copyItem.setEnabled(false); deleteItem.setEnabled(false); } else { cutItem.setEnabled(true); copyItem.setEnabled(true); deleteItem.setEnabled(true); } } public void menuDeselected(MenuEvent evvvv){} public void menuCanceled(MenuEvent evvvv){}};editMenu.addMenuListener(editMenuListener);f.setJMenuBar(mb);}/*************Constructor**************/////////////////////////////////////public static void main(String[] s){new Notepad();}}/**************************************///publicinterface MenuConstants{final String fileText='File';final String editText='Edit';final String formatText='Format';final String viewText='View';final String helpText='Help';final String fileNew='New';final String fileOpen='Open..';final String fileSave='Save';final String fileSaveAs='Save As..';final String filePageSetup='Page Setup..';final String filePrint='Print';final String fileExit='Exit';final String editUndo='Undo';final String editCut='Cut';final String editCopy='Copy';final String editPaste='Paste';final String editDelete='Delete';final String editFind='Find..';final String editFindNext='Find Next';final String editReplace='Replace';final String editGoTo='Go To..';final String editSelectAll='Select All';final String editTimeDate='Time/Date';final String formatWordWrap='Word Wrap';final String formatFont='Font..';final String formatForeground='Set Text color..';final String formatBackground='Set Pad color..';final String viewStatusBar='Status Bar';final String helpHelpTopic='Help Topic';final String helpAboutNotepad='About Javapad';final String aboutText='Your Javapad';}
Notepad Programming Codes
Next TopicCalculator in Java