Home | JSP | EJB | JDBC | Java Servlets | WAP  | Free JSP Hosting  | Spring Framework | Web Services | BioInformatics | Java Server Faces | Jboss 3.0 tutorial | Hibernate 3.0 | XML

Tutorial Categories: Ajax | Articles | JSP | Bioinformatics | Database | Free Books | Hibernate | J2EE | J2ME | Java | JavaScript | JDBC | JMS | Linux | MS Technology | PHP | RMI | Web-Services | Servlets | Struts | UML


 

Java Tutorials


 

 

Struts Tutorials

Struts Resources

Visit Forum! Post Questions!
Jobs At RoseIndia.net!

Java: Example - Simple Editor

This simple text editor uses a JTextArea with Actions to implement the menu items. Actions are a good way to implement ActionListeners.

  • Actions can be used with most buttons, including toobox buttons and menu items, text fields, etc.
  • They can be shared so that all controls which do the same thing can share an Action.
  • Actions can be dis-/enabled, and they will then dis-/enable all corresponding controls.
  • They can be used to set icons, tooltip text, accelerator and mnemonic keys.

 

 

 

 

 

 

 

  1 
  2 
  3 
  4 
  5 
  6 
  7 
  8 
  9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
 24 
 25 
 26 
 27 
 28 
 29 
 30 
 31 
 32 
 33 
 34 
 35 
 36 
 37 
 38 
 39 
 40 
 41 
 42 
 43 
 44 
 45 
 46 
 47 
 48 
 49 
 50 
 51 
 52 
 53 
 54 
 55 
 56 
 57 
 58 
 59 
 60 
 61 
 62 
 63 
 64 
 65 
 66 
 67 
 68 
 69 
 70 
 71 
 72 
 73 
 74 
 75 
 76 
 77 
 78 
 79 
 80 
 81 
 82 
 83 
 84 
 85 
 86 
 87 
 88 
 89 
 90 
 91 
 92 
 93 
 94 
 95 
 96 
 97 
 98 
 99 
100 
101 
102 
103 
// editor/NutPad.java -- A very simple text editor -- Fred Swartz - 2004-08
// Illustrates use of AbstractActions for menus.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;

public class NutPad extends JFrame {
    //-- Components 
    private JTextArea mEditArea;
    private JFileChooser mFileChooser = new JFileChooser(".");
    
    //-- Actions
    private Action mOpenAction;
    private Action mSaveAction;
    private Action mExitAction;
    
    //===================================================================== main
    public static void main(String[] args) {
        new NutPad().setVisible(true);
    }//end main
    
    //============================================================== constructor
    public NutPad() {
        createActions();
        this.setContentPane(new contentPanel());
        this.setJMenuBar(createMenuBar());
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setTitle("NutPad");
        this.pack();
    }//end constructor

    ///////////////////////////////////////////////////////// class contentPanel
    private class contentPanel extends JPanel {        
        //========================================================== constructor
        contentPanel() {
            //-- Create components.
            mEditArea = new JTextArea(15, 80);
                mEditArea.setBorder(BorderFactory.createEmptyBorder(2,2,2,2));
                mEditArea.setFont(new Font("monospaced", Font.PLAIN, 14));
            JScrollPane scrollingText = new JScrollPane(mEditArea);
            
            //-- Do layout
            this.setLayout(new BorderLayout());
            this.add(scrollingText, BorderLayout.CENTER);
        }//end constructor
    }//end class contentPanel
    
    //============================================================ createMenuBar
    /** Utility function to create a menubar. */
    private JMenuBar createMenuBar() {
        JMenuBar menuBar = new JMenuBar();
            JMenu fileMenu = menuBar.add(new JMenu("File"));
                fileMenu.add(mOpenAction);  // Note use of actions, not text.
                fileMenu.add(mSaveAction);
                fileMenu.addSeparator(); 
                fileMenu.add(mExitAction);
        return menuBar;
    }//end createMenuBar
    
    //============================================================ createActions
    /** Utility function to define actions. */
    private void createActions() {
        mOpenAction = new AbstractAction("Open...") {
            public void actionPerformed(ActionEvent e) {
                int retval = mFileChooser.showOpenDialog(NutPad.this);
                if (retval == JFileChooser.APPROVE_OPTION) {
                    File f = mFileChooser.getSelectedFile();
                    try {
                        FileReader reader = new FileReader(f);
                        mEditArea.read(reader, "");  // Use TextComponent read
                    } catch (IOException ioex) {
                        System.out.println(e);
                        System.exit(1);
                    }
                }
            }
        };
        
        mSaveAction = new AbstractAction("Save") {
            public void actionPerformed(ActionEvent e) {
                int retval = mFileChooser.showSaveDialog(NutPad.this);
                if (retval == JFileChooser.APPROVE_OPTION) {
                    File f = mFileChooser.getSelectedFile();
                    try {
                        FileWriter writer = new FileWriter(f);
                        mEditArea.write(writer);  // Use TextComponent write
                    } catch (IOException ioex) {
                        System.out.println(e);
                        System.exit(1);
                    }
                }
            }
        };
        
        mExitAction = new AbstractAction("Exit") {
            public void actionPerformed(ActionEvent e) {
                System.exit(0);
            }
        };
    }//end createActions    
}//end class NutPad
Ask programming questions?

 

 

Add This Tutorial To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 

Current Comments

0 comments so far (post your own) View All Comments Latest 10 Comments:
  JDO Tutorials
  EAI Articles
  Struts Tutorials
  Java Tutorials
  Java Certification

Tell A Friend
Your Friend Name

 

 
Browse all Java Tutorials
Java JSP Struts Servlets Hibernate XML
Ajax JDBC EJB MySQL JavaScript JSF
Maven2 Tutorial JEE5 Tutorial Java Threading Tutorial Photoshop Tutorials Linux Technology
Technology Revolutions Eclipse Spring Tutorial Bioinformatics Tutorials Tools SQL
 

Home | JSP | EJB | JDBC | Java Servlets | WAP  | Free JSP Hosting  | Search Engine | News Archive | Jboss 3.0 tutorial | Free Linux CD's | Forum | Blogs

About Us | Advertising On RoseIndia.net  | Site Map

India News

Send your comments, Suggestions or Queries regarding this site at roseindia_net@yahoo.com.

Copyright 2007. All rights reserved.

[an error occurred while processing this directive]