Java - FileDialog

 
Vista:

FileDialog

Publicado por EdgarTX (13 intervenciones) el 07/02/2007 13:14:31
Hola que tal, bueno, esta vez mi duda es:

Estoy haciendo un programilla con FileDialog, alguien sabe si se puede establecer algún tipo de filtro??? Estilo el filter de Visual Basic, para la hora de buscar tipos de archivos.

Luego, tb comentar que no me abre los txt, ni los doc parece ser que no los toma como ficheros, o eso me dice.

Y por último, como hago un WindowAdapter, para no tener que poner todos los eventos, como ocurre con WindowListener???

Os paso el código, y os agradezco la ayuda.

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

public class EjFileDialog extends Frame implements ActionListener
{
//Creación de variables
private TextArea texto;
private MenuItem opcionAbrir;
private MenuItem opcionSalir;

public EjFileDialog()
{
super("Editor de texto");//Ponemos título

texto=new TextArea();
add(BorderLayout.CENTER,texto);//Añadimos txt

Menu menu=new Menu("Fichero");//Creamos el menú de opciones
opcionAbrir=new MenuItem("Abrir");
opcionAbrir.addActionListener(this); //Cogemos su evento
menu.add(opcionAbrir);
opcionSalir=new MenuItem("Salir");
opcionSalir.addActionListener(this);
menu.add(opcionSalir);
MenuBar barraMenu=new MenuBar(); // Insertam la barra de menú
barraMenu.add(menu);
setMenuBar(barraMenu);
addWindowListener(new EscuchadorVentana());
}
public void abrirArchivo()
{
FileDialog ventanaArchivos=new FileDialog(this,"Abrir archivo",FileDialog.LOAD);
ventanaArchivos.show();
String nombreFichero=ventanaArchivos.getFile();
if (nombreFichero==null)
return;
File fichero=new File(nombreFichero);
texto.setText("");
if (!fichero.exists())
{ texto.setText("Archivo inexistente"); return; }
if (!fichero.isFile())
{ texto.setText("No se puede abrir un directorio"); return; }
if (!fichero.canRead())
{ texto.setText("El archivo no tiene permisos de lectura"); return; }
BufferedReader lector=null;
try { lector=new BufferedReader(new FileReader(nombreFichero));
String linea=lector.readLine();
while (linea!=null)
{ texto.append(linea+"\n");
linea=lector.readLine(); }
}
catch (IOException excepcion)
{ texto.setText("Se ha producido un error al abrir el archivo"); }

}

public void actionPerformed(ActionEvent e)
{ Object origenEvento=e.getSource();
if (origenEvento==opcionAbrir)
abrirArchivo();
else if (origenEvento==opcionSalir)
System.exit(0);
}
public static void main(String [] args)
{ EjFileDialog editor=new EjFileDialog();
editor.pack();
editor.setSize(800,500);
editor.setVisible(true);
}

class EscuchadorVentana implements WindowListener
{
public void windowActivated(WindowEvent e) { }
public void windowDeactivated(WindowEvent e) { }
public void windowOpened(WindowEvent e) { }
public void windowClosed(WindowEvent e) { }
public void windowClosing(WindowEvent e) { System.exit(0); }
public void windowIconified(WindowEvent e) { }
public void windowDeiconified(WindowEvent e) { }
}
}

Saludossssssssss
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:FileDialog

Publicado por Angel (537 intervenciones) el 07/02/2007 14:17:42
Te ayudo con lo del filtro de ficheros.........

Puedes filtra los archivos con al interfaz FileFilter, debes crear una clase que la implemente y sobreescribir su unico metodo accept(File), un ejemplo:

public boolean accept(File f) {
if (f.isDirectory()) return true;
String name = f.getName().toLowerCase();
return name.endsWith("html") || name.endsWith("htm");
}

Un saludo y suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar