2008-12-17 21 views
8

Tengo un applet de Java que está incrustado en html usando el método object-comment-embed. Me gustaría cambiar el tamaño del applet siempre que se cambie el tamaño de la ventana del navegador. Encontré soluciones en Internet, pero todas funcionan según la etiqueta applet en desuso.¿Cómo cambiar el tamaño de un applet de Java cuando se cambia el tamaño del navegador?

Además, al intentar una llamada setSize() en mi elemento embed en FireBug, se redimensionará el contenido del applet, pero no la ventana del applet. Es decir, el área de la pantalla que se entrega a java no cambia.

código actual es como la siguiente:

<object 
    id='MyApplet1' 
    width='300' height='200' 
    classid='clsid:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' 
    codebase='http://java.sun.com/update/1.6.0/jinstall-6-windows-i586.cab#Version=1,6,0,0'> 
    <param name='type' value='application/x-java-applet;version=1.6'> 
    <param name='scriptable' value='false'> 
    <param name='codebase' value='foo'> 
    <param name='code' value='bar'> 
    <param name='archive' value='baz'> 
    <param name='arg1' value='A'> 
    <param name='arg2' value='B'> 
    <comment> 
     <embed 
      id='MyApplet2' 
      width='300' height='200' 
      pluginspage='http://java.sun.com/products/plugin/index.html#download' 
      type='application/x-java-applet;version=1.6' 
      scriptable='false' 
      codebase='foo' 
      code='bar' 
      archive='baz' 
      arg1='A' 
      arg2='B'> 
      <noembed> 
      </noembed> 
     </embed> 
    </comment> 
</object> 
<script type="text/javascript"> 
function resize() { 
    min_width = 300; 
    min_height = 200; 
    frame_width = 0; 
    frame_height = 0; 
    if(parseInt(navigator.appVersion) > 3) { 
    if(navigator.appName=='Netscape') { 
     frame_width = window.innerWidth; 
     frame_height = window.innerHeight; 
    } 
    if (navigator.appName.indexOf('Microsoft') != -1) { 
     frame_width = document.body.offsetWidth; 
     frame_height = document.body.offsetHeight; 
    } 
    } 
    frame_width *= 0.78; 
    frame_height *= 0.78; 
    applet_width = frame_width > min_width ? frame_width : min_width; 
    applet_height = frame_height > min_height ? frame_height : min_height; 
    document.getElementById('MyApplet1').setSize(applet_width, applet_height); 
    document.getElementById('MyApplet2').setSize(applet_width, applet_height); 
} 
window.onResize = resize; 
window.onLoad = resize; 
</script> 
+0

¿Se llama a su función de cambio de tamaño? (por ejemplo, ¿dónde está el error hasta ahora?) – scunliffe

Respuesta

4

intente reemplazar estas líneas:

document.getElementById('MyApplet1').setSize(applet_width, applet_height); 
document.getElementById('MyApplet2').setSize(applet_width, applet_height); 

con:

document.getElementById('MyApplet1').style.height = applet_height + "px"; 
document.getElementById('MyApplet1').style.width = applet_width + "px"; 

document.getElementById('MyApplet2').style.height = applet_height + "px"; 
document.getElementById('MyApplet2').style.width = applet_width + "px"; 
+0

Mi voto es por este método. Básicamente, he hecho lo mismo para cambiar el tamaño de los controles ActiveX. Debería funcionar igual para un Applet. – CodingWithSpike

+0

Esto funcionó! Estaba haciendo lo mismo, usando setSize(). Se estaba llamando pero el applet no cambiaba de tamaño. ¡Gracias! –

1

¿Por qué no utilizar la anchura y la altura porcentaje. Usualmente uso el siguiente código para mis applets:

<applet codebase="http://localhost:89" archive="npaxet?version=0.0.1.28" code="main.NPaxet.class" width=100% height=90%>\ 
<PARAM NAME="thumbnailUrl" VALUE="http://localhost:89/thumbnail?seriesid=%s"> 
<PARAM NAME="dicomUrl" VALUE="http://localhost:89/dicom?imageid=%d"> 
<PARAM NAME="seriesCount" VALUE="11"> 
... 
</applet> 
Cuestiones relacionadas