Oscilación de Java | Crear un editor de texto simple

Para crear un editor de texto simple en Java Swing, usaremos un JTextArea, un JMenuBar y le agregaremos JMenu y agregaremos JMenuItems. Todos los elementos del menú tendrán actionListener para detectar cualquier acción.
Habrá una barra de menú y contendrá dos menús y un botón:
 

  1. Menú Archivo
    • abrir : este elemento del menú se utiliza para abrir un archivo
    • guardar : este elemento del menú se utiliza para guardar un archivo
    • imprimir : este elemento del menú se utiliza para imprimir los componentes del área de texto
    • nuevo : este elemento del menú se utiliza para crear un nuevo archivo en blanco
  2. Menú de edición
    • cortar : este elemento del menú es para cortar el área seleccionada y copiarla al portapapeles
    • copiar : este elemento del menú es para copiar el área seleccionada al portapapeles
    • pegar : este elemento del menú sirve para pegar el texto del portapapeles en el área de texto
  3. Cerrar : este botón cierra el marco

Hemos utilizado el lector de archivos y el escritor de archivos para obtener más información sobre la lectura y escritura de archivos en Java. Por favor, siga los siguientes enlaces: 
 

Métodos utilizados: 

método explicación
Corte() elimina el área seleccionada del área de texto y la almacena en el portapapeles
Copiar() copia el área seleccionada del área de texto y la almacena en el portapapeles
pegar() elimina el área seleccionada del área de texto y la almacena en el portapapeles
impresión() imprime los componentes del área de texto

Para obtener más métodos sobre los componentes JSwing, consulte: 
 

  1. Oscilación de Java | JPanel
  2. Oscilación de Java | JMenuBar
  3. Creación de marcos usando columpios en Java
  4. Oscilación de Java | JTextArea

Programa para crear un editor de texto simple:
Para crear un editor de texto simple: 
 

  • Primero, crearemos un marco f titulado «editor» y aplicaremos una apariencia de metal y estableceremos un tema de océano en él.
  • Agregaremos un área de texto y una barra de menú con tres menús Archivo, Editar y Cerrar.
    • La opción «Archivo» tiene 4 elementos de menú nuevo, abrir, guardar e imprimir.
    • «Editar» tiene 3 elementos de menú para cortar, copiar y pegar. Agregaremos un oyente de acción a todos los elementos del menú (usando la función addActionListener()) para detectar cualquier acción.
  • Agregaremos los elementos del menú al menú y el menú a la barra de menú usando la función add() y agregaríamos la barra de menú al marco usando la función addJMenuBar().
  • Agregaremos el área de texto al marco usando la función agregar, estableceremos el tamaño del marco en 500,500 usando la función setSize(500,500) y luego mostraremos el marco usando la función mostrar.

Así es como se invocarán las funciones del menú:
 

  • Al seleccionar el elemento de menú cortar, copiar, pegar e imprimir, se invocarán las funciones incorporadas del área de texto cortar(), copiar(), pegar() e imprimir().
  • Al seleccionar el elemento de menú «guardar», se abrirá un selector de archivos que mostrará el cuadro de diálogo Guardar después de seleccionar un archivo, el escritor de archivos (escritor almacenado en búfer) escribirá el contenido del área de texto en el archivo y cerrará el escritor de archivos y el escritor almacenado en búfer.
  • Al seleccionar el elemento de menú «abrir», se abrirá un selector de archivos que mostrará el cuadro de diálogo abierto después de seleccionar un archivo, un lector de archivos y un lector almacenado en búfer leerán el archivo y establecerán el texto del área de texto en el contenido del archivo.
  • Si se selecciona el elemento de menú «nuevo», el texto del área de texto se establecerá en blanco. Si se selecciona el elemento de menú «cerrar», el marco se cierra utilizando la función isVisible (falso).

Programa: 
 

Java

// Java Program to create a text editor using java
import java.awt.*;
import javax.swing.*;
import java.io.*;
import java.awt.event.*;
import javax.swing.plaf.metal.*;
import javax.swing.text.*;
class editor extends JFrame implements ActionListener {
    // Text component
    JTextArea t;
 
    // Frame
    JFrame f;
 
    // Constructor
    editor()
    {
        // Create a frame
        f = new JFrame("editor");
 
        try {
            // Set metal look and feel
            UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
 
            // Set theme to ocean
            MetalLookAndFeel.setCurrentTheme(new OceanTheme());
        }
        catch (Exception e) {
        }
 
        // Text component
        t = new JTextArea();
 
        // Create a menubar
        JMenuBar mb = new JMenuBar();
 
        // Create amenu for menu
        JMenu m1 = new JMenu("File");
 
        // Create menu items
        JMenuItem mi1 = new JMenuItem("New");
        JMenuItem mi2 = new JMenuItem("Open");
        JMenuItem mi3 = new JMenuItem("Save");
        JMenuItem mi9 = new JMenuItem("Print");
 
        // Add action listener
        mi1.addActionListener(this);
        mi2.addActionListener(this);
        mi3.addActionListener(this);
        mi9.addActionListener(this);
 
        m1.add(mi1);
        m1.add(mi2);
        m1.add(mi3);
        m1.add(mi9);
 
        // Create amenu for menu
        JMenu m2 = new JMenu("Edit");
 
        // Create menu items
        JMenuItem mi4 = new JMenuItem("cut");
        JMenuItem mi5 = new JMenuItem("copy");
        JMenuItem mi6 = new JMenuItem("paste");
 
        // Add action listener
        mi4.addActionListener(this);
        mi5.addActionListener(this);
        mi6.addActionListener(this);
 
        m2.add(mi4);
        m2.add(mi5);
        m2.add(mi6);
 
        JMenuItem mc = new JMenuItem("close");
 
        mc.addActionListener(this);
 
        mb.add(m1);
        mb.add(m2);
        mb.add(mc);
 
        f.setJMenuBar(mb);
        f.add(t);
        f.setSize(500, 500);
        f.show();
    }
 
    // If a button is pressed
    public void actionPerformed(ActionEvent e)
    {
        String s = e.getActionCommand();
 
        if (s.equals("cut")) {
            t.cut();
        }
        else if (s.equals("copy")) {
            t.copy();
        }
        else if (s.equals("paste")) {
            t.paste();
        }
        else if (s.equals("Save")) {
            // Create an object of JFileChooser class
            JFileChooser j = new JFileChooser("f:");
 
            // Invoke the showsSaveDialog function to show the save dialog
            int r = j.showSaveDialog(null);
 
            if (r == JFileChooser.APPROVE_OPTION) {
 
                // Set the label to the path of the selected directory
                File fi = new File(j.getSelectedFile().getAbsolutePath());
 
                try {
                    // Create a file writer
                    FileWriter wr = new FileWriter(fi, false);
 
                    // Create buffered writer to write
                    BufferedWriter w = new BufferedWriter(wr);
 
                    // Write
                    w.write(t.getText());
 
                    w.flush();
                    w.close();
                }
                catch (Exception evt) {
                    JOptionPane.showMessageDialog(f, evt.getMessage());
                }
            }
            // If the user cancelled the operation
            else
                JOptionPane.showMessageDialog(f, "the user cancelled the operation");
        }
        else if (s.equals("Print")) {
            try {
                // print the file
                t.print();
            }
            catch (Exception evt) {
                JOptionPane.showMessageDialog(f, evt.getMessage());
            }
        }
        else if (s.equals("Open")) {
            // Create an object of JFileChooser class
            JFileChooser j = new JFileChooser("f:");
 
            // Invoke the showsOpenDialog function to show the save dialog
            int r = j.showOpenDialog(null);
 
            // If the user selects a file
            if (r == JFileChooser.APPROVE_OPTION) {
                // Set the label to the path of the selected directory
                File fi = new File(j.getSelectedFile().getAbsolutePath());
 
                try {
                    // String
                    String s1 = "", sl = "";
 
                    // File reader
                    FileReader fr = new FileReader(fi);
 
                    // Buffered reader
                    BufferedReader br = new BufferedReader(fr);
 
                    // Initialize sl
                    sl = br.readLine();
 
                    // Take the input from the file
                    while ((s1 = br.readLine()) != null) {
                        sl = sl + "\n" + s1;
                    }
 
                    // Set the text
                    t.setText(sl);
                }
                catch (Exception evt) {
                    JOptionPane.showMessageDialog(f, evt.getMessage());
                }
            }
            // If the user cancelled the operation
            else
                JOptionPane.showMessageDialog(f, "the user cancelled the operation");
        }
        else if (s.equals("New")) {
            t.setText("");
        }
        else if (s.equals("close")) {
            f.setVisible(false);
        }
    }
 
    // Main class
    public static void main(String args[])
    {
        editor e = new editor();
    }
}

Producción: 
 

Nota: Es posible que los programas anteriores no se ejecuten en un IDE en línea; use un compilador fuera de línea.
 

Publicación traducida automáticamente

Artículo escrito por andrew1234 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *