48. Nuestro modesto "Editor"
Para terminar este capítulo, el siguiente applet nos permite cargar, editar y grabar archivos ascii a elección. Podemos usar inclusive las acciones "cut & paste" del windows manager (Ctrl-C y Ctrl-V en Windows)!
Cargarlo con "appletviewer Ejemplo13" luego de haberlo compilado (o usar una página html desde un browser):
/*
Archivo: Ejemplo13.java
*/
import java.io.*;
import java.awt.*;
import java.applet.*;
public class Ejemplo13 extends Applet {
public void init() {
new Ventana13();
}
}
/*
Esta clase es la que en realidad hace el trabajo
*/
class Ventana13 extends Frame {
TextArea contenido;
Botones13 pieVentana;
Ventana13() {
super("Ejemplo de E/S");
contenido = new TextArea();
pieVentana = new Botones13();
add("North",contenido);
add("South",pieVentana);
pack();
show();
}
public boolean handleEvent(Event e) {
if ((e.idEvent.WINDOW_DESTROY)||(e.id
2004))
dispose();
if (e.id2004) CargarArchivo(pieVentana.toString());
if (e.id
2002) GrabarArchivo(pieVentana.toString());
return super.handleEvent(e);
}
void CargarArchivo(String nombre) {
FileInputStream fptr;
DataInputStream f;
String linea = null;
contenido.setText("");
try {
fptr = new FileInputStream(nombre);
f = new DataInputStream(fptr);
do {
linea = f.readLine();
if (linea!=null) contenido.appendText(linea+"\n");
} while (linea != null);
fptr.close();
}
catch (FileNotFoundException e) {
new Error13("El archivo no existe!");
}
catch (IOException e) {
new Error13("Error leyendo archivo!");
}
}
void GrabarArchivo(String nombre) {
FileOutputStream fptr;
DataOutputStream f;
try {
fptr = new FileOutputStream(nombre);
f = new DataOutputStream(fptr);
f.writeBytes(contenido.getText());
fptr.close();
}
catch (IOException e) {
new Error13("Error grabando archivo!");
}
}
}
/*
Esta es para los botones y el nombre del archivo
*/
class Botones13 extends Panel {
TextField fname;
Button cargar;
Button grabar;
Button cerrar;
Botones13() {
setLayout(new GridLayout(1,4));
fname = new TextField();
cargar = new Button("Cargar");
grabar = new Button("Grabar");
cerrar = new Button("Cerrar");
add(new Label("Archivo:"));
add(fname);
add(cargar);
add(grabar);
add(cerrar);
}
public boolean handleEvent(Event e) {
if ((e.idEvent.ACTION_EVENT)&&(e.target
cargar))
e.id=2004;
if ((e.idEvent.ACTION_EVENT)&&(e.target
grabar))
e.id=2002;
if ((e.idEvent.ACTION_EVENT)&&(e.target
cerrar))
e.id=2004;
return super.handleEvent(e);
}
public String toString() {
return fname.getText();
}
}
/*
Para mostrar los errores...
*/
class Error13 extends Frame {
Error13(String error) {
add("Center",new Label(error));
add("South", new Button("Ok"));
pack();
show();
}
public boolean handleEvent(Event e) {
dispose();
return super.handleEvent(e);
}
}
Un poco largo... pero vale la pena, ¿no?!
Nos vemos en el próximo capítulo...
Autor y licencia de 'Java partiendo de Cero - Nuestro modesto "Editor"'
Jorge Bourdette Extraído de: http://www.publispain.com/supertutoriales
|
|
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
|
|
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.
|
|
Wikis relacionados con 'Java partiendo de Cero - Nuestro modesto "Editor"'
Amplio tutorial de Java para empezar a trabajar y ampliar conocimientos de este lenguaje.
OpenOffice Impress es un programa para crear presentaciones multimedia. OpenOffice es una alternativa libre a...
Más »
Este ensayo surge como una respuesta a todos aquellos que preguntan en qué corriente de...
Más »
En este texto, presento algunas reflexiones que han surgido de una experiencia de aula en...
Más »
Este documento contiene información acerca del establecimiento de servicios WWW bajo Linux (tanto servidor como...
Más »
¿Estás seguro de que deseas eliminar este capítulo?