Advertisement
defineSN

wordpad sketch 1

Jun 27th, 2013
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.15 KB | None | 0 0
  1. import java.awt.BorderLayout;
  2. import java.awt.EventQueue;
  3. import javax.swing.JFrame;
  4. import javax.swing.JPanel;
  5. import javax.swing.border.EmptyBorder;
  6. import javax.swing.JFileChooser;
  7. import javax.swing.JMenu;
  8. import javax.swing.JMenuBar;
  9. import javax.swing.JMenuItem;
  10. import javax.swing.JOptionPane;
  11. import javax.swing.JSeparator;
  12. import javax.swing.KeyStroke;
  13. import javax.swing.SwingConstants;
  14. import java.awt.Color;
  15. import java.awt.event.ActionEvent;
  16. import java.awt.event.ActionListener;
  17. import java.awt.event.InputEvent;
  18. import java.awt.event.KeyEvent;
  19. import java.awt.print.PrinterException;
  20. import java.awt.print.PrinterJob;
  21. import java.io.BufferedReader;
  22. import java.io.File;
  23. import java.io.FileReader;
  24. import java.io.FileWriter;
  25. import java.io.IOException;
  26.  
  27. import javax.swing.JTextArea;
  28.  
  29. public class myWordpad extends JFrame {
  30.  
  31.     private JPanel contentPane;
  32.     JTextArea textArea;
  33.     File myFile;
  34.  
  35.     public static void main(String[] args) {
  36.         EventQueue.invokeLater(new Runnable() {
  37.             public void run() {
  38.                 try {
  39.                     myWordpad frame = new myWordpad();
  40.                     frame.setVisible(true);
  41.                 } catch (Exception e) {
  42.                     e.printStackTrace();
  43.                 }
  44.             }
  45.         });
  46.     }
  47.  
  48.  
  49.     public myWordpad() {
  50.  
  51.         super("untitled - Notepad");
  52.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  53.         setBounds(100, 100, 450, 300);
  54.  
  55.         try {
  56.             javax.swing.UIManager.setLookAndFeel(javax.swing.UIManager
  57.                     .getSystemLookAndFeelClassName());
  58.         } catch (Exception ex) {
  59.             ex.printStackTrace();
  60.         }
  61.  
  62.         JMenuBar menuBar = new JMenuBar();
  63.         menuBar.setBackground(Color.LIGHT_GRAY);
  64.         setJMenuBar(menuBar);
  65.  
  66.         JMenu file = new JMenu("File");
  67.         menuBar.add(file);
  68.  
  69.         JMenuItem menuItem_0 = new JMenuItem("New");
  70.         menuItem_0.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,
  71.                 InputEvent.CTRL_DOWN_MASK));
  72.         file.add(menuItem_0);
  73.  
  74.         JMenuItem menuItem_1 = new JMenuItem("Open");
  75.         menuItem_1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,
  76.                 InputEvent.CTRL_DOWN_MASK));
  77.         menuItem_1.addActionListener(new openActionListener());
  78.         file.add(menuItem_1);
  79.  
  80.         JMenuItem menuItem_2 = new JMenuItem("Save");
  81.         menuItem_2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,
  82.                 InputEvent.CTRL_DOWN_MASK));
  83.         menuItem_2.addActionListener(new saveActionListener());
  84.         file.add(menuItem_2);
  85.  
  86.         JMenuItem menuItem_3 = new JMenuItem("Save As");
  87.         menuItem_3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,
  88.                 InputEvent.CTRL_DOWN_MASK + InputEvent.ALT_DOWN_MASK));
  89.         menuItem_3.addActionListener(new saveAsActionListener());
  90.  
  91.         file.add(menuItem_3);
  92.  
  93.         file.add(new JSeparator(SwingConstants.HORIZONTAL));
  94.  
  95.         JMenuItem menuItem_4 = new JMenuItem("Page Setup");
  96.         file.add(menuItem_4);
  97.        
  98.         JMenuItem mntmPrintPreview = new JMenuItem("Print Preview");
  99.         file.add(mntmPrintPreview);
  100.  
  101.         JMenuItem menuItem_5 = new JMenuItem("Print");
  102.         menuItem_5.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,
  103.                 InputEvent.CTRL_DOWN_MASK));
  104.         menuItem_5.addActionListener(new printActionListener());
  105.         file.add(menuItem_5);
  106.         file.add(new JSeparator(SwingConstants.HORIZONTAL));
  107.  
  108.         JMenuItem menuItem_6 = new JMenuItem("Exit");
  109.         file.add(menuItem_6);
  110.  
  111.         JMenu mnNewMenu_1 = new JMenu("New menu");
  112.         menuBar.add(mnNewMenu_1);
  113.  
  114.         JMenu mnNewMenu_2 = new JMenu("New menu");
  115.         menuBar.add(mnNewMenu_2);
  116.  
  117.         JMenu mnNewMenu_3 = new JMenu("New menu");
  118.         menuBar.add(mnNewMenu_3);
  119.  
  120.         JMenu menu = new JMenu("New menu");
  121.         menuBar.add(menu);
  122.         contentPane = new JPanel(); // creating custom content pane.
  123.         contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  124.         contentPane.setLayout(new BorderLayout(0, 0));
  125.         setContentPane(contentPane);
  126.  
  127.         textArea = new JTextArea();
  128.         contentPane.add(textArea, BorderLayout.CENTER);
  129.     }
  130.  
  131.     private class openActionListener implements ActionListener {
  132.         @Override
  133.         public void actionPerformed(ActionEvent e) {
  134.             openFile();
  135.         }
  136.     }
  137.  
  138.     private class saveActionListener implements ActionListener {
  139.         @Override
  140.         public void actionPerformed(ActionEvent e) {
  141.             fileSave();
  142.         }
  143.     }
  144.  
  145.     private class saveAsActionListener implements ActionListener {
  146.         @Override
  147.         public void actionPerformed(ActionEvent e) {
  148.             fileSaveAs();
  149.         }
  150.     }
  151.    
  152.     private class printActionListener implements ActionListener {
  153.         @Override
  154.         public void actionPerformed(ActionEvent e) {
  155.             filePrint();
  156.         }
  157.     }
  158.  
  159.     private void openFile() {
  160.         BufferedReader fileReader = null; // without this initialization , try{}
  161.                                             // inside finally{} would give error
  162.  
  163.         JFileChooser fc = new JFileChooser();
  164.         int option = fc.showOpenDialog(null);
  165.         myFile = fc.getSelectedFile();
  166.         System.out.println("path of file opened : " + myFile.toString()); // debug
  167.                                                                             // statement
  168.         try {
  169.             fileReader = new BufferedReader(new FileReader(myFile));
  170.  
  171.             String line = null;
  172.             StringBuilder str = new StringBuilder("");// stringbuffer's unsynch
  173.                                                         // version. used for
  174.                                                         // complex string
  175.                                                         // concats.
  176.             while ((line = fileReader.readLine()) != null) {
  177.                 str.append(line); // wordpad characteristics
  178.                 str.append("\n");
  179.             }
  180.             textArea.setText(str.toString());
  181.             setTitle(myFile.getName() + " - Notepad");
  182.         } catch (Exception e) {
  183.             e.printStackTrace();
  184.         } finally {
  185.             try {
  186.                 fileReader.close();
  187.  
  188.             } catch (IOException e) {
  189.                 e.printStackTrace();
  190.             } catch (NullPointerException e) {
  191.                 e.printStackTrace();
  192.             }
  193.         }
  194.  
  195.     }
  196.  
  197.     private void fileSave() {
  198.  
  199.         if (myFile.toString().equals("")) {
  200.             System.out.println("doing Save As");
  201.             fileSaveAs();
  202.         } else {
  203.             System.out.println("just saving");
  204.             fileSave(myFile);
  205.         }
  206.  
  207.     }
  208.  
  209.     private void fileSave(File myFile) {
  210.         try {
  211.             // normally would open FileWriter in append mode , but in this case , would
  212.             // give a copy of the original content , as during saving , that
  213.             // content is already present in the JTextArea
  214.             FileWriter fw = new FileWriter(myFile);// no "true" 2nd argument for append mode
  215.             fw.write(textArea.getText());
  216.             setTitle(myFile.getName() + " - Notepad");
  217.             fw.close();
  218.         } catch (IOException e) {
  219.             JOptionPane.showMessageDialog(this, "Failed to save the file",
  220.                     "Error", JOptionPane.ERROR_MESSAGE);
  221.         }
  222.     }
  223.  
  224.     private void fileSaveAs() {
  225.         JFileChooser fc = new JFileChooser();
  226.  
  227.         int option = fc.showSaveDialog(null);
  228.         if (option == JFileChooser.CANCEL_OPTION)
  229.             return;
  230.  
  231.         myFile = fc.getSelectedFile();
  232.         if (myFile == null || myFile.getName().equals("")) {
  233.             JOptionPane.showMessageDialog(this, "enter file name", "Error",
  234.                     JOptionPane.ERROR_MESSAGE);
  235.             return;
  236.         }
  237.  
  238.         if (myFile.exists()) {
  239.             if ((JOptionPane.showConfirmDialog(this,
  240.                     "file name already exists!\n sure you want to overwrite?")) != 0)
  241.                 return;
  242.         }
  243.         fileSave(myFile);
  244.  
  245.     }
  246.    
  247.     public void filePrint() {
  248.         PrinterJob printer = PrinterJob.getPrinterJob();
  249.         //HashPrintRequestAttributeSet pAttrib = new HashPrintRequestAttributeSet();//putting this inside printDialog() does not give functional properties button 
  250.         if (printer.printDialog()) // standalone , however , this does
  251.         {
  252.             try {
  253.                 printer.print();
  254.             } catch (PrinterException e) {
  255.                 e.printStackTrace();
  256.             }
  257.         }
  258.     }
  259.  
  260. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement