Pregunta

Estoy diseñando un experimento de psicología con applets de Java. Tengo que hacer que mis applets de Java aparezcan en pantalla completa. ¿Cuál es la mejor manera de hacer esto y cómo puedo hacer esto?

Dado que no he estado usando applets de Java durante 3 años (la última vez que lo usé fue para la tarea del curso :)) He olvidado la mayoría de los conceptos. Busqué en Google y encontré ese enlace: Dani web

Pero en el método descrito en el enlace anterior, debe colocar un JFrame dentro del applet, que no tengo idea de cómo hacerlo.

Necesito un método rápido y sucio porque no tengo mucho tiempo y esta es la razón por la que lo pedí aquí.

Gracias de antemano

¿Fue útil?

Solución

Creo que quieres usar WebStart. Puede implementar desde un navegador, pero de lo contrario es una aplicación completa. Existen algunas restricciones de seguridad de navegador, pero, como está usando un Applet actualmente, creo que puedo suponer que no son un problema.

Otros consejos

La respuesta obvia es no usar applets. Escriba una aplicación que use un JFrame o JWindow como su contenedor de nivel superior. No es una gran cantidad de trabajo convertir un applet en una aplicación. Los applets están diseñados para integrarse en otra cosa, generalmente una página web.

Si ya tiene un applet y quiere que aparezca en pantalla completa, hay dos hacks rápidos y sucios:

1). Si conoce la resolución de la pantalla, simplemente configure los parámetros del applet para que tengan ese tamaño en el HTML y luego ejecute el navegador en modo de pantalla completa.

2). Ejecute el applet en appletviewer, en lugar de una página web, y maximice la ventana del appletviewer.

¿Por qué no simplemente abrir un nuevo Marco desde el applet (ya sea desde el método " start () " o, preferiblemente, después de que el usuario presiona un botón " abrir ") y configurarlo para que se maximice?

JFrame frame = new JFrame();
//more initialization code here
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
frame.setSize(dim.width, dim.height);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);

No olvides: el JFrame debe crearse y abrirse desde el EDT. No se garantiza que Applet start () se invoque en ese subproceso, así que use SwingUtilities.invokeLater (). Por supuesto, si opta por la ruta del botón, se llama al oyente de botones en el EDT, por lo que debe estar seguro.

He encontrado una solución para este problema que funciona bien. Probado en Linux 64 bits (Chrome y Firefox) y en Windows 7 64 bits (Chrome y Explorer)

El único problema ha sido que mi applet usa todo el espacio en el navegador y cuando el usuario apaga el modo de pantalla completa, el applet no se ajusta al tamaño del navegador. La solución ha sido mantener el tamaño anterior del applet antes de ingresar en modo de pantalla completa y luego establecer este tamaño cuando el applet vuelva al modo normal:

public void setFullScreen() {   
        if (!this.fullscreen) {
            size = this.getSize();
            if (this.parent == null) {
                this.parent = getParent();
            }
            this.frame = new Frame();
            this.frame.setUndecorated(true);
            this.frame.add(this);
            this.frame.setVisible(true);

            GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
            GraphicsDevice[] devices = ge.getScreenDevices();
            devices[0].setFullScreenWindow(this.frame);
            this.fullscreen = true;
        } else {
            if (this.parent != null) {
                this.parent.add(this);
            }
            if (this.frame != null) {
                this.frame.dispose();
            }
            this.fullscreen = false;
            this.setSize(size);
            this.revalidate();
        }       
        this.requestFocus();
    }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top