Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Create a GUI application that implements your own text editor, called MyNotePad.

ID: 3624812 • Letter: C

Question

Create a GUI application that implements your own text editor, called MyNotePad. Your text editor should contain the following features:
• Create a new text file
• Read an existing text file and display its content in a scrollable window
• Modify an existing text file and save the modified file with either the same name or allow the user to save as another file
Hints:
- Read about JFileChooser class and use it to get the names of both the input and output files.
- Read about JMenuBar, Jmenu, JMenuItem classes and use them to create menus for you text editor.

Explanation / Answer

import java.awt.*; import java.awt.event.*; import java.lang.String.*; import java.awt.datatransfer.*; import java.util.*; public class Notepad { public static void main(String args[]) {MyMenuFrame mf=new MyMenuFrame(); mf.setSize(new Dimension(300,200)); mf.setVisible(true); } } class MyMenuFrame extends Frame implements ActionListener { Clipboard clipboard; FileDialog filedialog_save,filedialog_load; MenuBar m_MenuBar; Menu menuFile,menuEdit,menuStyle,menuSearch,menuHelp; MenuItem mi_File_New,mi_File_Open,mi_File_Save,mi_file_Savaas,mi_File_Close,mi_File_Exit, mi_Edit_Ce,mi_Edit_Copy,mi_Edit_Cut,mi_Edit_Paste, mi_Edit_Style,mi_Style_Font,mi_Style_Auto, mi_Search_sphere, mi_Help_Helptopic,mi_Help_About; TextArea text; MyMenuFrame( ) { super("Untitled - Notepad"); text=new TextArea(20,20); add(text); clipboard = null; clipboard = getToolkit().getSystemClipboard(); filedialog_save=new FileDialog(this,"File Save dialog box",FileDialog.SAVE); filedialog_save.setVisible(false); filedialog_load=new FileDialog(this,"Open File dialog box",FileDialog.LOAD); filedialog_load.setVisible(false); m_MenuBar=new MenuBar( ); menuFile=new Menu("File"); MenuItem mi_File_New=new MenuItem("New"); MenuItem mi_File_Open=new MenuItem("Open..."); MenuItem mi_File_Save=new MenuItem("Save"); MenuItem mi_File_Saveas=new MenuItem("SaveAs..."); MenuItem mi_File_Close=new MenuItem("Close"); MenuItem mi_File_Exit=new MenuItem("Exit"); mi_File_Exit.setShortcut (new MenuShortcut('x')); mi_File_Open.setActionCommand("Open"); mi_File_New.setActionCommand("New"); mi_File_Exit.setActionCommand("Exit"); mi_File_New.addActionListener(this); mi_File_Open.addActionListener(this); mi_File_Save.addActionListener(this); mi_File_Saveas.addActionListener(this); mi_File_Close.addActionListener(this); mi_File_Exit.addActionListener(this); menuFile.add(mi_File_New); menuFile.add(mi_File_Open); menuFile.add(mi_File_Save); menuFile.add(mi_File_Saveas); menuFile.add(mi_File_Close); menuFile.addSeparator(); menuFile.add(mi_File_Exit); m_MenuBar.add(menuFile); menuEdit=new Menu("Edit"); mi_Edit_Ce=new MenuItem("Cancel"); mi_Edit_Copy=new MenuItem("Copy"); mi_Edit_Cut=new MenuItem("Cut"); mi_Edit_Paste=new MenuItem("Paste"); mi_Edit_Copy.setActionCommand("Copy"); mi_Edit_Cut.setActionCommand("Cut"); mi_Edit_Paste.setActionCommand("Paste"); mi_Edit_Ce.addActionListener(this); mi_Edit_Copy.addActionListener(this); mi_Edit_Cut.addActionListener(this); mi_Edit_Paste.addActionListener(this); menuEdit.add(mi_Edit_Ce); menuEdit.add(mi_Edit_Copy); menuEdit.add(mi_Edit_Cut); menuEdit.add(mi_Edit_Paste); m_MenuBar.add(menuEdit); menuStyle=new Menu("Format"); mi_Style_Auto=new MenuItem("Word Wrap"); mi_Style_Font=new MenuItem("Font..."); mi_Style_Auto.addActionListener(this); mi_Style_Font.addActionListener(this); menuStyle.add(mi_Style_Auto); menuStyle.add(mi_Style_Font); m_MenuBar.add(menuStyle); menuSearch=new Menu("View"); mi_Search_sphere=new MenuItem("Status Bar"); mi_Search_sphere.addActionListener(this); menuSearch.add(mi_Search_sphere); m_MenuBar.add(menuSearch); menuHelp=new Menu("Help"); mi_Help_Helptopic=new MenuItem("View Help"); mi_Help_About=new MenuItem("About Notepad"); mi_Help_Helptopic.addActionListener(this); mi_Help_About.addActionListener(this); menuHelp.add(mi_Help_Helptopic); menuHelp.add(mi_Help_About); m_MenuBar.add(menuHelp); setMenuBar(m_MenuBar); addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } } ); setVisible(true); validate(); } public void actionPerformed(ActionEvent e) { if(e.getActionCommand()=="New") { text.setText(null); } if(e.getActionCommand()=="Open") { filedialog_load.setVisible(true); } if(e.getActionCommand()=="Save") { filedialog_save.setVisible(true); } if(e.getActionCommand() == "Copy") { String s = text.getSelectedText(); StringSelection text1= new StringSelection(s); clipboard.setContents(text1, null); } if(e.getActionCommand() == "Cut") { String s1 = text.getSelectedText(); StringSelection text1 = new StringSelection(s1); clipboard.setContents(text1, null); int j = text.getSelectionStart(); int k = text.getSelectionEnd(); text.replaceRange("", j, k); } if(e.getActionCommand() =="Paste") { Transferable transferable = clipboard.getContents(this); DataFlavor dataflavor = DataFlavor.stringFlavor; if(transferable.isDataFlavorSupported(dataflavor)) { try { String s3 = (String)transferable.getTransferData(dataflavor); text.insert(s3, text.getCaretPosition()); } catch(Exception e1) { } } } if(e.getActionCommand()=="Exit") { dispose(); System.exit(0); } } }