Advertisement
Guest User

TextEditor

a guest
Oct 1st, 2014
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.76 KB | None | 0 0
  1. package textedit;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.Component;
  5. import java.awt.Container;
  6. import java.awt.Font;
  7. import java.awt.event.ActionEvent;
  8. import java.awt.event.ActionListener;
  9. import java.awt.event.KeyEvent;
  10. import java.io.File;
  11. import java.io.FileInputStream;
  12. import java.io.FileNotFoundException;
  13. import java.util.Scanner;
  14.  
  15. import javax.swing.JCheckBoxMenuItem;
  16. import javax.swing.JFileChooser;
  17. import javax.swing.JFrame;
  18. import javax.swing.JMenu;
  19. import javax.swing.JMenuBar;
  20. import javax.swing.JMenuItem;
  21. import javax.swing.JOptionPane;
  22. import javax.swing.JPanel;
  23. import javax.swing.JScrollPane;
  24. import javax.swing.JTextArea;
  25. import javax.swing.KeyStroke;
  26.  
  27. public class TextEdit implements ActionListener {
  28.     /**
  29.      *
  30.      */
  31.     private static final long serialVersionUID = -3491321526874204693L;
  32.     int fontSize = 14;
  33.     String fontName = "Times New Roman";
  34.     int fontType = Font.PLAIN;
  35.     JTextArea output;
  36.     JScrollPane scrollPane;
  37.     JMenuBar bar;
  38.     JMenu file, textStyle;
  39.     JMenuItem newFile, open, save, saveas, font, size, color;
  40.     JCheckBoxMenuItem bold, italics, underline;
  41.     Font currentFont;
  42.     JFileChooser fc;
  43.     Component openedFile;
  44.     File fileOpened;
  45.     String allLines;
  46.     boolean isNewFile = false;
  47.  
  48.     public static void main(String[] args) {
  49.         javax.swing.SwingUtilities.invokeLater(new Runnable() {
  50.             public void run() {
  51.                 create();
  52.             }
  53.         });
  54.     }
  55.  
  56.     public static void create() {
  57.         JFrame frame = new JFrame();
  58.         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  59.  
  60.         TextEdit te = new TextEdit();
  61.         frame.setContentPane(te.createContentPane());
  62.         frame.setJMenuBar(te.createMenuBar());
  63.  
  64.         frame.setSize(400, 600);
  65.         frame.setVisible(true);
  66.         frame.setTitle("Text Editor v. 1c");
  67.     }
  68.  
  69.     public Container createContentPane() {
  70.         JPanel contentPane = new JPanel(new BorderLayout());
  71.         contentPane.setOpaque(true);
  72.  
  73.         output = new JTextArea(5, 30);
  74.         output.setEditable(true);
  75.         scrollPane = new JScrollPane(output);
  76.  
  77.         contentPane.add(scrollPane, BorderLayout.CENTER);
  78.         return contentPane;
  79.     }
  80.     public JMenuBar createMenuBar() {
  81.         bar = new JMenuBar();
  82.  
  83.         file = new JMenu("File");
  84.         textStyle = new JMenu("Text Styles");
  85.  
  86.         newFile = new JMenuItem("New");
  87.         newFile.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,
  88.                 KeyEvent.VK_ALT));
  89.         newFile.addActionListener(new ActionListener() {
  90.             public void actionPerformed(ActionEvent e) {
  91.                 System.out.println("NEW FILE");
  92.             }
  93.         });
  94.         file.add(newFile);
  95.  
  96.         open = new JMenuItem("Open");
  97.         open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,
  98.                 KeyEvent.VK_ALT));
  99.         open.addActionListener(this);
  100.         file.add(open);
  101.  
  102.         save = new JMenuItem("Save");
  103.         save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,
  104.                 KeyEvent.VK_ALT));
  105.         save.addActionListener(new ActionListener() {
  106.             public void actionPerformed(ActionEvent e) {
  107.  
  108.             }
  109.         });
  110.         file.add(save);
  111.  
  112.         saveas = new JMenuItem("Save As");
  113.         saveas.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,
  114.                 KeyEvent.VK_ALT));
  115.         saveas.addActionListener(new ActionListener() {
  116.             public void actionPerformed(ActionEvent e) {
  117.                 fc = new JFileChooser();
  118.                 int returnVal = fc.showSaveDialog(newFile);
  119.             }
  120.         });
  121.         file.add(saveas);
  122.  
  123.         font = new JMenuItem("Change Font");
  124.         font.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,
  125.                 KeyEvent.VK_ALT));
  126.         font.addActionListener(new ActionListener() {
  127.             public void actionPerformed(ActionEvent e) {
  128.                 fontName = JOptionPane.showInputDialog("Enter Font Name: ");
  129.                 currentFont = new Font(fontName, fontType, fontSize);
  130.                 output.setFont(currentFont);
  131.             }
  132.         });
  133.         textStyle.add(font);
  134.  
  135.         size = new JMenuItem("Change Size");
  136.         size.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,
  137.                 KeyEvent.VK_ALT));
  138.         size.addActionListener(new ActionListener() {
  139.             public void actionPerformed(ActionEvent e) {
  140.                 fontSize = Integer.parseInt(JOptionPane
  141.                         .showInputDialog("Enter Size: "));
  142.                 currentFont = new Font(fontName, fontType, fontSize);
  143.                 output.setFont(currentFont);
  144.             }
  145.         });
  146.         textStyle.add(size);
  147.  
  148.         bold = new JCheckBoxMenuItem("Bold");
  149.         bold.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B,
  150.                 KeyEvent.VK_ALT));
  151.         bold.addActionListener(new ActionListener() {
  152.             public void actionPerformed(ActionEvent e) {
  153.                 if (bold.isSelected()) {
  154.                     fontType = Font.BOLD;
  155.                     currentFont = new Font(fontName, fontType, fontSize);
  156.                     output.setFont(currentFont);
  157.                 } else {
  158.                     fontType = Font.PLAIN;
  159.                     currentFont = new Font(fontName, fontType, fontSize);
  160.                     output.setFont(currentFont);
  161.                 }
  162.             }
  163.         });
  164.         textStyle.add(bold);
  165.  
  166.         bar.add(file);
  167.         bar.add(textStyle);
  168.         return bar;
  169.     }
  170.  
  171.     public void actionPerformed(ActionEvent e) {
  172.         if (e.getSource() == open) {
  173.             fc = new JFileChooser();
  174.             int returnVal = fc.showOpenDialog(createContentPane());
  175.  
  176.             if (returnVal == JFileChooser.APPROVE_OPTION) {
  177.                 System.out.println("File Approved");
  178.                 output.removeAll();
  179.                 fileOpened = fc.getSelectedFile();
  180.                 System.out.println("Opening " + fileOpened.getName());
  181.                 Scanner reader = null;
  182.                 try {
  183.                     reader = new Scanner(new FileInputStream(fileOpened));
  184.                 } catch (FileNotFoundException fnf) {
  185.                     fnf.printStackTrace();
  186.                 }
  187.                 String lines[];
  188.                 int i = 0;
  189.                 while (true) {
  190.                     if (!reader.hasNext()) {
  191.                         break;
  192.                     }
  193.                     System.out.println("Next line");
  194.                     reader.nextLine();
  195.                     i++;
  196.                 }
  197.                 try {
  198.                     reader = new Scanner(new FileInputStream(fileOpened));
  199.                 } catch (FileNotFoundException fnf) {
  200.                 }
  201.                 lines = new String[i];
  202.                 allLines = "";
  203.                 for (int j = 0; j < i; j++) {
  204.                     lines[j] = reader.nextLine();
  205.                     allLines += lines[j] + "\n";
  206.                 }
  207.                 System.out.println(allLines);
  208.             }
  209.             output.setText(allLines);
  210.         }
  211.     }
  212. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement