Desplegar dialogo "Abrir", "Guardar" desde un JApplet

Estimados compañeros de foro.

Como comento en el titulo, mi problema es el siguiente:

La intencion es desplegar las cajas de dialogo estandar "Abrir" o "Guardar", ya lo intenté desde un JFrame y me funcionó sin problemas, sin embargo, hago lo mimso desde un JApplet y no lo consigo.

Para una descripcion mas precisa abajo dejo las lineas de codigo que estoy utilizando.

***************************************************
Desde un JFrame:

lo consigo invocando el metodo showOpenDialog() de la clase JFileChooser;

       
        b1 = new JButton("Presionar");
        b1.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e){
                        fc.showOpenDialog(null);
                }
        });

***********************************************
Desde un JApplet:

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

public class Img extends JApplet{
        private JButton b1;
        private JFileChooser fc;

    public Img() {
        b1 = new JButton("Presionar");
        b1.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e){
                        fc.showOpenDialog(null);
                }
        });
    }
   
    public void init(){
        getContentPane().setLayout(new FlowLayout());
        getContentPane().add(b1);      
    }
   
}

.
Posteriormente la respectiva carga en un archivo HTML, adjunto imagen del la corrida del applet.

Agradezco a todos su valioso apoyo.

AdjuntoTamaño
Applet.jpg53.14 KB

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de novatoJava

Seguimiento

Estimados compañeros agradeceria su valioso apoyo, con mi duda, expuesta anteriormente.

Saludos

Imagen de neko069

Applet?

Creo que casi no tienes respuestas porque es bastante BASTANTE raro que haya preguntas relacionadas con applets.
Checa éste link, se supone que el ejemplo describe la funcionalidad que necesitas.
Checa las docs de Oracle, para que veas qué puede hacer un Applet y qué no puede.

Imagen de novatoJava

Thanks

Mi estimado neko069

Muchas gracias por el dato, estoy seguro que no soy el unico con este problema puesto que hay varias lecturas, seguiré indagando y cuando lo haya solucionado, lo postearé, para ayudar a mas compañeros.

Saludos.

Imagen de novatoJava

Resuelto

Eureka.

Mis estimados lo he solucionado.
Les compárto como lo hice.

El detalle es que la clase para desplegar los cuadros de dialogo en un JApplet, no es JFileChooser, en su lugar debemos ocupar la clase FileDialog.

al crear el objeto de la clase debemos hacerlo siguiendo este formato.

new FileDialog(obj_frame,”Titulo”,estilo);

donde:
- obj_frame : es el objeto que va a contener nuestro cuadro de dialogo, en mi caso utilicé un JFrame f1.
- "Titulo" : Elegir un titulo acorde a la accion que vayamos a realizar preferentemente "Abrir" ó "Guardar".
- estilo: depende de la accion que necesitemos serán.
FileDialog.LOAD Cuadro para Abrir ficheros.
FileDialog.SAVE Cuadro para guardar ficheros

Despues de haber hecho lo anteriror, en el manejo de eventos (metodo actionPerformed()), lo mostramos utilizando el metodo show()

Utilizando el mismo ejemplo arriba planteado me quedó de la siguiente manera:

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

public class Img extends JApplet{
private JButton b1;
private FileDialog fd;
private JFrame f1;

public Img() {
b1 = new JButton("Presionar");
f1 = new JFrame();
fd = new FileDialog(f1,"Abrir",FileDialog.LOAD);

}

public void init(){
getContentPane().setLayout(new FlowLayout());
getContentPane().add(b1);

b1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
fd.show();
}
});

} // Fin metodo init

}

Podemos encontrar los metodos para la clase FileDialog, y manipular diferentes archivos, que es el paso que sigue.

Agradeceré algun comentario o dudas al respecto.

Saludos a todos.