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:
- 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
- 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
- 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:
- Diferentes formas de leer un archivo de texto en Java
- Manejo de archivos en Java usando FileWriter y FileReader
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:
- Oscilación de Java | JPanel
- Oscilación de Java | JMenuBar
- Creación de marcos usando columpios en Java
- 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