Foros del Web » Programación para mayores de 30 ;) » Java »

Como hacer para que un applet cierre el browser que lo contiene...

Estas en el tema de Como hacer para que un applet cierre el browser que lo contiene... en el foro de Java en Foros del Web. Bueno tengo un JApplet con un botón sencillo. Lo que quiero hacer es que en el momento de darle click al botón, pueda cerrar el ...
  #1 (permalink)  
Antiguo 30/01/2006, 23:24
Avatar de KonstrictorMan  
Fecha de Ingreso: octubre-2005
Mensajes: 22
Antigüedad: 18 años, 6 meses
Puntos: 0
Como hacer para que un applet cierre el browser que lo contiene...

Bueno tengo un JApplet con un botón sencillo. Lo que quiero hacer es que en el momento de darle click al botón, pueda cerrar el browser que lo contiene.

Le agregué el "System.exit(0)" al código que ejecuta el botón y funciona como quiero desde el appletviewer, pero no así con un browser...

Alguien tiene alguna sugerencia ?

Gracias
  #2 (permalink)  
Antiguo 31/01/2006, 02:17
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 4 meses
Puntos: 19
Lo intenté una vez y me daba acceso denegado . Prueba a firmar el Applet ...
Pero si fuera tú , ponia una capa con html ( <div ... ) donde me interesara cerca de el Applet (si la pones encima no se verá), insertaba un botón en la capa y con JavaScript conseguia que se cerrara el navegador.
Código HTML:
<body>

<p>
<applet width="494" height="162" code="prueba.class">
</applet></p>
<div style="position: absolute; width: 60px; height: 27px; z-index: 1; left: 17px; top: 174px" id="capa1">
	<input type="button" value="Cerrar" name="B3" onclick="cierra()"></div>

<script>
function cierra(){
var ventana = window.self; 
ventana.opener = window.self; 
ventana.close(); 
}
</script>
</body> 
  #3 (permalink)  
Antiguo 31/01/2006, 13:45
Avatar de KonstrictorMan  
Fecha de Ingreso: octubre-2005
Mensajes: 22
Antigüedad: 18 años, 6 meses
Puntos: 0
El applet

Gracias por tu rta...

Te cuento ke el applet está debidamente firmado y en cuanto a la idea ke sugieres es bastante cercano a lo ke busco, pero el botón debee ser un botón del applet, es decir es un javax.swing.JButton...

Como hago para ke el applet le envie un mensaje al browser ?
  #4 (permalink)  
Antiguo 31/01/2006, 14:20
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 4 meses
Puntos: 19
Pues buscando :How do I close the browser window when an applet closes?
http://www.irt.org/script/4070.htm

Y resumiendo te pone que uses en el Appletthis.showDocument(URL) ante un evento ( como el click de un JButton) y en URL tiene que ser un documento que haga que se cierre el navegador con JavaScript

Que seria una solución híbrida . Pero parece que has tenido suerte. Encontré esto en http://www.rgagnon.com/javadetails/java-0282.html

Código:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import netscape.javascript.*;

public class WinClose extends Applet 
        implements ActionListener{

Button wc = new Button("Close me");

public void init() {
 wc.setActionCommand("CLOSE");
 wc.addActionListener(this);
 add(wc);
 }

public void actionPerformed(ActionEvent e) {
  String command = e.getActionCommand();
  if (command.equals("CLOSE")) {
   JSObject win = (JSObject) JSObject.getWindow(this);
   win.eval("self.close();");
   }
  }
}
Pero no he probado si funciona , parece que no haria falta ni firmar el Applet.
  #5 (permalink)  
Antiguo 31/01/2006, 22:12
Avatar de KonstrictorMan  
Fecha de Ingreso: octubre-2005
Mensajes: 22
Antigüedad: 18 años, 6 meses
Puntos: 0
El applet

Bueno... el código tiene muy buenas intenciones... solo que de donde saco la libreria netscape.javascript.* ??

por lo pronto intentaré lo primero...

Gracias...
  #6 (permalink)  
Antiguo 12/09/2008, 03:12
MPC
 
Fecha de Ingreso: septiembre-2008
Mensajes: 1
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Como hacer para que un applet cierre el browser que lo contiene...

El código anterior propuesto por dogduck hace uso de "Live Connection" una librería de Netscape para la comunicación entre los Applets y código JavaScript de los HTMLs que alojan los Applets.

En http://java.sun.com/products/plugin/1.3/docs/jsobject.html hay información sobre el tema.

Lamentablemente el enlace que nuestra esta página para acceder a los binarios de dicha librería es inaccesible. Algo tendrá que ver que Netscape ya no exista ni como residuo de AOL...

En su día, hace cerca de 5 años, ne descargué la dichosa librería y todavía la tengo y la utilizo. No sé dónde se podrá encontrar...

Espero ser de ayuda a algún despistado.

MPC
  #7 (permalink)  
Antiguo 12/09/2008, 04:20
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Como hacer para que un applet cierre el browser que lo contiene...

Un applet no debería cerrar el navegador que lo contiene. Es una "falta de educación" hacia el usuario, puesto que el applet es solo un programilla que se ejecuta en el navegador, el cual podria estar siendo usado por el usuario para otras cosas.

Si la idea es cerrar el applet una vez terminado de usar, se muestra el applet en un JFrame aparte y se cierra ese JFrame.
Si la idea es cerrar la ventana/tab donde esta applet, se crea esa ventana con JavaScript se cierra con JavaScript.

Si un applet me cierra el navegador lo llevo al paredón
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:10.