From 762bde6b03d8590ca5c60eafa7dafa742b8d9bff Mon Sep 17 00:00:00 2001 From: Anish Date: Sat, 7 Sep 2024 18:15:18 +0530 Subject: [PATCH] Added a Notepad Application developed using java libraries. --- Programs/NotePadAppllication/Format.java | 48 ++++ .../NotePadAppllication/Function_Color.java | 31 +++ .../NotePadAppllication/Function_Edit.java | 13 + .../NotePadAppllication/Function_File.java | 80 ++++++ Programs/NotePadAppllication/GUI.java | 251 ++++++++++++++++++ Programs/NotePadAppllication/KeyHandler.java | 32 +++ Programs/NotePadAppllication/Main.java | 5 + 7 files changed, 460 insertions(+) create mode 100644 Programs/NotePadAppllication/Format.java create mode 100644 Programs/NotePadAppllication/Function_Color.java create mode 100644 Programs/NotePadAppllication/Function_Edit.java create mode 100644 Programs/NotePadAppllication/Function_File.java create mode 100644 Programs/NotePadAppllication/GUI.java create mode 100644 Programs/NotePadAppllication/KeyHandler.java create mode 100644 Programs/NotePadAppllication/Main.java diff --git a/Programs/NotePadAppllication/Format.java b/Programs/NotePadAppllication/Format.java new file mode 100644 index 0000000..cffed76 --- /dev/null +++ b/Programs/NotePadAppllication/Format.java @@ -0,0 +1,48 @@ +import java.awt.*; + +public class Format { + GUI gui; + String SELECTEDString; + + + Font arial ,ComicSansMS,timeNewRoman; + Format(GUI gui){ + this.gui=gui; + } + + public void wrapword(){ + + if (gui.wordwrapOn==false){ + gui.wordwrapOn=true; + gui.textArea.setLineWrap(true); + gui.textArea.setWrapStyleWord(true); + gui.iWrap.setText("Wrap Word:On"); + + } + else if (gui.wordwrapOn==true){ + gui.wordwrapOn=false; + gui.textArea.setLineWrap(false); + gui.textArea.setWrapStyleWord(false); + gui.iWrap.setText("Wrap Word:Off"); + } + + } + + public void createFont(int fontSize){ + + arial=new Font("Arial",Font.PLAIN,fontSize); + ComicSansMS=new Font("ComicSansMS",Font.PLAIN,fontSize); + timeNewRoman=new Font("TimeNewRoman",Font.PLAIN,fontSize); + selectfont(SELECTEDString); + + } + public void selectfont(String font){ + SELECTEDString=font; + switch(SELECTEDString){ + case "Time Of New Roman":gui.textArea.setFont(timeNewRoman); break; + case "Comic Sans MS":gui.textArea.setFont(ComicSansMS); break; + case "Arial":gui.textArea.setFont(arial); + } + } + +} diff --git a/Programs/NotePadAppllication/Function_Color.java b/Programs/NotePadAppllication/Function_Color.java new file mode 100644 index 0000000..f2a459d --- /dev/null +++ b/Programs/NotePadAppllication/Function_Color.java @@ -0,0 +1,31 @@ +import java.awt.*; + +public class Function_Color { + GUI gui; + + Function_Color(GUI gui){ + this.gui=gui; + } + + public void changeColor(String color){ + switch (color){ + case "White": + gui.window.getContentPane().setBackground(Color.WHITE); + gui.textArea.setBackground(Color.WHITE); + gui.textArea.setForeground(Color.BLACK); + break; + case "Black": + gui.window.setBackground(Color.BLACK); + gui.textArea.setBackground(Color.BLACK); + gui.textArea.setForeground(Color.white); + break; + case "Red": + gui.window.setBackground(Color.red); + gui.textArea.setBackground(Color.red); + gui.textArea.setForeground(Color.WHITE); + break; + + } + + } +} diff --git a/Programs/NotePadAppllication/Function_Edit.java b/Programs/NotePadAppllication/Function_Edit.java new file mode 100644 index 0000000..117d2b2 --- /dev/null +++ b/Programs/NotePadAppllication/Function_Edit.java @@ -0,0 +1,13 @@ +public class Function_Edit { + GUI gui; + Function_Edit(GUI gui){ + this.gui=gui; + } + + public void undo(){ + gui.um.undo(); + } + public void redo(){ + gui.um.redo(); + } +} diff --git a/Programs/NotePadAppllication/Function_File.java b/Programs/NotePadAppllication/Function_File.java new file mode 100644 index 0000000..8c15644 --- /dev/null +++ b/Programs/NotePadAppllication/Function_File.java @@ -0,0 +1,80 @@ +import java.awt.*; +import java.io.*; + +public class Function_File { + GUI gui; + String fileName; + String fileAddress; + Function_File( GUI gui){ + this.gui=gui; + + } + public void newFile(){ + gui.textArea.setText(""); + gui.window.setTitle("New"); + fileName=null; + fileAddress=null; + } + public void open(){ + FileDialog fileDialog=new FileDialog(gui.window,"Open",FileDialog.LOAD); + fileDialog.setVisible(true); + + if (fileDialog.getFile()!=null){ + fileName= fileDialog.getFile(); + fileAddress=fileDialog.getDirectory(); + gui.window.setTitle(fileName); + + try{ + BufferedReader br= new BufferedReader(new FileReader(fileAddress+fileName)); + gui.textArea.setText(""); + String line=null; + while((line= br.readLine())!=null){ + gui.textArea.append(line+"\n"); + } + br.close(); + + }catch (Exception e){ + System.out.println("File not found"); + } + + } + } + public void save(){ + if (fileName==null){ + SaveAs(); + } + else { + try{ + FileWriter fileWriter= new FileWriter(fileAddress+fileName); + fileWriter.write(gui.textArea.getText()); + fileWriter.close(); + }catch (Exception e){ + System.out.println("Something Went Wrong"); + } + } + + } + public void SaveAs(){ + FileDialog fileDialog = new FileDialog(gui.window,"SAVE",FileDialog.SAVE); + fileDialog.setVisible(true); + if(fileDialog.getFile()!=null){ + fileName=fileDialog.getFile(); + fileAddress=fileDialog.getDirectory(); + gui.window.setTitle(fileName); + } + try{ + FileWriter fileWriter= new FileWriter(fileAddress+fileName); + fileWriter.write(gui.textArea.getText()); + fileWriter.close(); + }catch (Exception e){ + System.out.println("Something Went Wrong"); + } + } + public void exit(){ + System.exit(0); + } + + public static void main(String[] args) { + + } +} diff --git a/Programs/NotePadAppllication/GUI.java b/Programs/NotePadAppllication/GUI.java new file mode 100644 index 0000000..5dd5d3a --- /dev/null +++ b/Programs/NotePadAppllication/GUI.java @@ -0,0 +1,251 @@ +import javax.swing.*; +import javax.swing.event.UndoableEditEvent; +import javax.swing.event.UndoableEditListener; +import javax.swing.undo.UndoManager; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +public class GUI implements ActionListener { + JFrame window; + // TEXT AREA + JTextArea textArea; + JScrollPane scrollPane; + boolean wordwrapOn; + // MENU BAR + JMenuBar menuBar; + JMenu menuFile,menuEdit,menuFormat,menuColour; + //FILE + JMenuItem iNew,iOpen,iSave,iSaveAs,iExit; + + // FORMAT + JMenuItem iWrap ; + JMenu iFont ,iFontsize; + + JMenuItem iFontTR,iFontARIAL,iFontuh; + // FontSize() + JMenuItem iFont8,iFont12,iFont16,iFont20,iFont24; + + /// COLOR + JMenuItem iWhite,iBlack,iRed; + /// Edit + JMenuItem iUndo,iRedo; + UndoManager um= new UndoManager(); + + Function_File file = new Function_File(this); + Format format = new Format(this); + + Function_Color functionColor=new Function_Color(this); + + Function_Edit functionEdit= new Function_Edit(this); + + KeyHandler keyHandler = new KeyHandler(this); + + + + public GUI(){ + createwindow(); + createTextArea(); + createMenu(); + + createFileMenu(); + createFormat(); + createColorMenu(); + + format.selectfont("Arial"); + format.createFont(16); + functionColor.changeColor("White"); + + format.wrapword(); + + createEditMenu(); + + + + window.setVisible(true); + } + public static void main(String[] args) { + new GUI(); + } + public void createwindow(){ + window=new JFrame("Notepad"); + window.setSize(800,600); + window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + } + public void createTextArea(){ + textArea=new JTextArea(); + textArea.addKeyListener(keyHandler); + textArea.getDocument().addUndoableEditListener( + new UndoableEditListener() { + @Override + public void undoableEditHappened(UndoableEditEvent e) { + um.addEdit(e.getEdit()); + } + } + ); + scrollPane=new JScrollPane(textArea,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); + scrollPane.setBorder(BorderFactory.createEmptyBorder()); + window.add(scrollPane); + + } + public void createMenu(){ + menuBar= new JMenuBar(); + window.setJMenuBar(menuBar); + // file + menuFile=new JMenu("File"); + menuBar.add(menuFile); + // Edit + menuEdit=new JMenu("Edit"); + menuBar.add(menuEdit); + //Format + menuFormat=new JMenu("Format"); + menuBar.add(menuFormat); + //Color + menuColour=new JMenu("Color"); + menuBar.add(menuColour); + } + public void createFileMenu(){ + iNew=new JMenuItem("New"); + iNew.addActionListener(this); + iNew.setActionCommand("New"); + menuFile.add(iNew); + iOpen=new JMenuItem("Open"); + iOpen.addActionListener(this); + iOpen.setActionCommand("Open"); + menuFile.add(iOpen); + iSave=new JMenuItem("Save"); + iSave.addActionListener(this); + iSave.setActionCommand("Save"); + menuFile.add(iSave); + iSaveAs=new JMenuItem("SaveAs"); + iSaveAs.addActionListener(this); + iSaveAs.setActionCommand("SaveAs"); + menuFile.add(iSaveAs); + iExit=new JMenuItem("Exit"); + iExit.addActionListener(this); + iExit.setActionCommand("Exit"); + menuFile.add(iExit); + } + + public void createFormat(){ + iWrap=new JMenuItem("Word Wrap:Off"); + iWrap.addActionListener(this); + iWrap.setActionCommand("Word Wrap"); + menuFormat.add(iWrap); + // font + iFont= new JMenu("Font"); + menuFormat.add(iFont); + //font size + iFontsize=new JMenu("Font Size"); + menuFormat.add(iFontsize); + + // font item + iFontuh=new JMenuItem("Comic Sans MS"); + iFontuh.addActionListener(this); + iFontuh.setActionCommand("Comic Sans MS"); + iFont.add(iFontuh); + iFontARIAL=new JMenuItem("Arial"); + iFontARIAL.addActionListener(this); + iFontARIAL.setActionCommand("Arial"); + iFont.add(iFontARIAL); + iFontTR=new JMenuItem("Time Of New Roman"); + iFontTR.addActionListener(this); + iFontTR.setActionCommand("Time Of New Roman"); + iFont.add(iFontTR); + + + //fontSIZE + iFont8=new JMenuItem("8"); + iFont8.addActionListener(this); + iFont8.setActionCommand("size8"); + iFontsize.add(iFont8); + + iFont12=new JMenuItem("12"); + iFont12.addActionListener(this); + iFont12.setActionCommand("size12"); + iFontsize.add(iFont12); + + iFont16=new JMenuItem("16"); + iFont16.addActionListener(this); + iFont16.setActionCommand("size16"); + iFontsize.add(iFont16); + + iFont20=new JMenuItem("20"); + iFont20.addActionListener(this); + iFont20.setActionCommand("size20"); + iFontsize.add(iFont20); + + iFont24=new JMenuItem("24"); + iFont24.addActionListener(this); + iFont24.setActionCommand("size24"); + iFontsize.add(iFont24); + } + + public void createColorMenu(){ + iWhite=new JMenuItem("White"); + iWhite.addActionListener(this); + iWhite.setActionCommand("White"); + menuColour.add(iWhite); + iBlack=new JMenuItem("Black"); + iBlack.addActionListener(this); + iBlack.setActionCommand("Black"); + menuColour.add(iBlack); + iRed=new JMenuItem("Red"); + iRed.addActionListener(this); + iRed.setActionCommand("Red"); + menuColour.add(iRed); + } + + public void createEditMenu(){ + iUndo=new JMenuItem("Undo"); + iUndo.addActionListener(this); + iUndo.setActionCommand("Undo"); + menuEdit.add(iUndo); + iRedo=new JMenuItem("Redo"); + iRedo.addActionListener(this); + iRedo.setActionCommand("Redo"); + menuEdit.add(iRedo); + } + + @Override + public void actionPerformed(ActionEvent e) { + String command=e.getActionCommand(); + switch (command){ + case "New":file.newFile(); + break; + case "Open":file.open(); + break; + case "SaveAs":file.SaveAs(); + break; + case "Save":file.save(); + break; + case "Exit":file.exit(); + break; + case "Word Wrap":format.wrapword(); + break; + case "size12":format.createFont(12); + break; + case "size16":format.createFont(16); + break; + case "size20":format.createFont(20); + break; + case "size24":format.createFont(24); + break; + case "Arial":format.selectfont("Arial"); + break; + case "Comic Sans MS":format.selectfont("Comic Sans MS"); + break; + + + case "Time Of New Roman":format.selectfont("Time Of New Roman"); + break; + + case "White":functionColor.changeColor("White"); break; + case "Red":functionColor.changeColor("Red"); break; + + case "Black":functionColor.changeColor("Black"); break; + case "Undo": functionEdit.undo();break; + case "Redo":functionEdit.redo();break; + + } + } +} diff --git a/Programs/NotePadAppllication/KeyHandler.java b/Programs/NotePadAppllication/KeyHandler.java new file mode 100644 index 0000000..83c3538 --- /dev/null +++ b/Programs/NotePadAppllication/KeyHandler.java @@ -0,0 +1,32 @@ +import java.awt.event.KeyEvent; +import java.awt.event.KeyListener; + +public class KeyHandler implements KeyListener { + GUI gui; + + KeyHandler(GUI gui){ + + this.gui=gui; + } + @Override + public void keyTyped(KeyEvent e) { + + } + + @Override + public void keyPressed(KeyEvent e) { + + if (e.isControlDown() && e.getKeyCode()==KeyEvent.VK_S){ + gui.file.save(); + } + if (e.isShiftDown() && e.getKeyCode()==KeyEvent.VK_S){ + gui.file.SaveAs(); + } + + } + + @Override + public void keyReleased(KeyEvent e) { + + } +} diff --git a/Programs/NotePadAppllication/Main.java b/Programs/NotePadAppllication/Main.java new file mode 100644 index 0000000..3e59c38 --- /dev/null +++ b/Programs/NotePadAppllication/Main.java @@ -0,0 +1,5 @@ +public class Main { + public static void main(String[] args) { + System.out.println("Hello world!"); + } +} \ No newline at end of file