martes, 24 de noviembre de 2009

APPLETS

Qué son los Applets de Java

Una manera de incluir programas complejos en el ámbito de una página web. Estos applets se programan en Java y por tanto se benefician de la potencia de este lenguaje para la Red.
Por Miguel Angel Alvarez
Un applet no es más que una aplicación Java que se encuentra en web. El applet presenta unas diferencias con las aplicaciones porque no tienen ningún main, y son clases que tienen el mismo nombre que el del archivo que las incluye, que amplían la clase Applet del paquete java.applet.
Incluso para los applets existe la versión JApplet de swing, que se utiliza para introducir componentes Swing en lugar de componentes AWT. Un applet necesita un archivo html que lo invoque. Por ejemplo, PrimoApplet.java, el applet que queremos poner en marcha, lo redactamos y el compilador genera PrimoApplet.class. Para ponerlo en marcha necesitamos un archivo html que incluya el TAG en su interior:

Si este archivo se llama tribilín.html, llegados a este punto tenemos dos posibilidades para poner en marcha el applet. La primera, en fase debug, es utilizar el programa appletviewer de JDK y, para esto, tendremos que escribir partiendo del prompt de dos:
appletviewer tribilín.html
La segunda es utilizar un web browser, como Explorer o Netscape invocando el archivo tribilín.html.
Como se puede ver, se pone en marcha siempre el archivo html, y no el archivo .class como ocurría para las aplicaciones. Es el archivo html el que invoca la aplicación .java.
Para más informaciones sobre las páginas html os aconsejo visitar el sito HTMLpoint donde se encuentran apartados que tratan este tema. Nosostros prepararemos unas páginas sencillas que sirven sólo para cargar nuestros applets. por ejemplo, para el applet PrimoApplet.class de antes, el archivo tribilín.html será algo parecido a:


Applet PrimoApplet <br /></head> <br /><body> <br />El siguiente es el applet PrimoApplet.class <br /><applet code="PrimoApplet.class" width=100 height=100>¡Tu browser es viejo, tienes que cambiarlo!</APPLET> <br /></body> <br /></html> <br />Ciclo de vida de un applet <br />Para seguir el ciclo de vida de un applet, supondremos que estamos ejecutando en nuestro navegador el applet básico HolaMundo, a través de la página HTML que lo carga y corre. <br /> <br />Lo primero que aparece son los mensajes "initializing... starting...", como resultado de la carga del applet en el navegador. Una vez cargado, lo que sucede es: <br /> <br /> <br /> <br />Se crea una instancia de la clase que controla al applet <br />El applet se inicializa a si mismo <br />Comienza la ejecución del applet <br /> <br />Cuando se abandona la página, por ejemplo, para ir a la siguiente, el applet detiene la ejecución. Cuando se regresa a la página que contiene el applet, se reanuda la ejecución. <br /> <br />Si se utiliza la opción del navegador de Reload, es decir, volver a cargar la página, el applet es descargado y vuelto a cargar. El applet libera todos los recursos que hubiese acaparado, detiene su ejecución y ejecuta su finalizador para realizar un proceso de limpieza final de sus trazas. Después de esto, el applet se descarga de la memoria y vuelve a cargarse volviendo a comenzar su inicialización. <br /> <br />Finalmente, cuando se concluye la ejecución del navegador, o de la aplicación que está visualizando el applet, se detiene la ejecución del applet y se libera toda la memoria y recursos ocupados por el applet antes de salir del navegador. <br /> <br /> <br />Autor: htmlpoint <br />http://www.htmlpoint.com/guidajava/java_18.htm <br />Agustín Froufe. <br />Extraido de: http://www.publispain.com/supertutoriales/ <br /> <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'> <span class='post-author vcard'> Publicado por <span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://www.blogger.com/profile/11274018804682176170' itemprop='url'/> <a class='g-profile' href='https://www.blogger.com/profile/11274018804682176170' rel='author' title='author profile'> <span itemprop='name'>jasg587</span> </a> </span> </span> <span class='post-timestamp'> en <meta content='http://jasg587.blogspot.com/2009/11/applets.html' itemprop='url'/> <a class='timestamp-link' href='https://jasg587.blogspot.com/2009/11/applets.html' rel='bookmark' title='permanent link'><abbr class='published' itemprop='datePublished' title='2009-11-24T17:26:00-08:00'>17:26</abbr></a> </span> <span class='post-comment-link'> </span> <span class='post-icons'> <span class='item-action'> <a href='https://www.blogger.com/email-post/524931798993985876/2067053675507371533' title='Enviar entrada por correo electrónico'> <img alt='' class='icon-action' height='13' src='https://resources.blogblog.com/img/icon18_email.gif' width='18'/> </a> </span> <span class='item-control blog-admin pid-844765198'> <a href='https://www.blogger.com/post-edit.g?blogID=524931798993985876&postID=2067053675507371533&from=pencil' title='Editar entrada'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <div class='post-share-buttons goog-inline-block'> </div> </div> <div class='post-footer-line post-footer-line-2'> <span class='post-labels'> </span> </div> <div class='post-footer-line post-footer-line-3'> <span class='post-location'> </span> </div> </div> </div> <div class='comments' id='comments'> <a name='comments'></a> <h4>No hay comentarios:</h4> <div id='Blog1_comments-block-wrapper'> <dl class='avatar-comment-indent' id='comments-block'> </dl> </div> <p class='comment-footer'> <div class='comment-form'> <a name='comment-form'></a> <h4 id='comment-post-message'>Publicar un comentario</h4> <p> </p> <a href='https://www.blogger.com/comment/frame/524931798993985876?po=2067053675507371533&hl=es&saa=85391&origin=https://jasg587.blogspot.com' id='comment-editor-src'></a> <iframe allowtransparency='true' class='blogger-iframe-colorize blogger-comment-from-post' frameborder='0' height='410px' id='comment-editor' name='comment-editor' src='' width='100%'></iframe> <script src='https://www.blogger.com/static/v1/jsbin/2830521187-comment_from_post_iframe.js' type='text/javascript'></script> <script type='text/javascript'> BLOG_CMT_createIframe('https://www.blogger.com/rpc_relay.html'); </script> </div> </p> </div> </div> </div></div> </div> <div class='blog-pager' id='blog-pager'> <span id='blog-pager-newer-link'> <a class='blog-pager-newer-link' href='https://jasg587.blogspot.com/2009/12/appets.html' id='Blog1_blog-pager-newer-link' title='Entrada más reciente'>Entrada más reciente</a> </span> <span id='blog-pager-older-link'> <a class='blog-pager-older-link' href='https://jasg587.blogspot.com/2009/11/mruv.html' id='Blog1_blog-pager-older-link' title='Entrada antigua'>Entrada antigua</a> </span> <a class='home-link' href='https://jasg587.blogspot.com/'>Inicio</a> </div> <div class='clear'></div> <div class='post-feeds'> <div class='feed-links'> Suscribirse a: <a class='feed-link' href='https://jasg587.blogspot.com/feeds/2067053675507371533/comments/default' target='_blank' type='application/atom+xml'>Enviar comentarios (Atom)</a> </div> </div> </div></div> </div> <div id='sidebar-wrapper'> <div class='sidebar section' id='sidebar'><div class='widget Followers' data-version='1' id='Followers1'> <h2 class='title'>Seguidores</h2> <div class='widget-content'> <div id='Followers1-wrapper'> <div style='margin-right:2px;'> <div><script type="text/javascript" src="https://apis.google.com/js/platform.js"></script> <div id="followers-iframe-container"></div> <script type="text/javascript"> window.followersIframe = null; function followersIframeOpen(url) { gapi.load("gapi.iframes", function() { if (gapi.iframes && gapi.iframes.getContext) { window.followersIframe = gapi.iframes.getContext().openChild({ url: url, where: document.getElementById("followers-iframe-container"), messageHandlersFilter: gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER, messageHandlers: { '_ready': function(obj) { window.followersIframe.getIframeEl().height = obj.height; }, 'reset': function() { window.followersIframe.close(); followersIframeOpen("https://www.blogger.com/followers/frame/524931798993985876?colors\x3dCgt0cmFuc3BhcmVudBILdHJhbnNwYXJlbnQaByM2NjY2NjYiByM1NTg4YWEqByNmZmZmZmYyByNjYzY2MDA6ByM2NjY2NjZCByM1NTg4YWFKByM5OTk5OTlSByM1NTg4YWFaC3RyYW5zcGFyZW50\x26pageSize\x3d21\x26hl\x3des\x26origin\x3dhttps://jasg587.blogspot.com"); }, 'open': function(url) { window.followersIframe.close(); followersIframeOpen(url); } } }); } }); } followersIframeOpen("https://www.blogger.com/followers/frame/524931798993985876?colors\x3dCgt0cmFuc3BhcmVudBILdHJhbnNwYXJlbnQaByM2NjY2NjYiByM1NTg4YWEqByNmZmZmZmYyByNjYzY2MDA6ByM2NjY2NjZCByM1NTg4YWFKByM5OTk5OTlSByM1NTg4YWFaC3RyYW5zcGFyZW50\x26pageSize\x3d21\x26hl\x3des\x26origin\x3dhttps://jasg587.blogspot.com"); </script></div> </div> </div> <div class='clear'></div> </div> </div><div class='widget Profile' data-version='1' id='Profile1'> <h2>Colaboradores</h2> <div class='widget-content'> <ul> <li><a class='profile-name-link g-profile' href='https://www.blogger.com/profile/01811426162978848151' style='background-image: url(//www.blogger.com/img/logo-16.png);'>Andres Narvaez</a></li> <li><a class='profile-name-link g-profile' href='https://www.blogger.com/profile/14669274896199099169' style='background-image: url(//www.blogger.com/img/logo-16.png);'>Diego Tonello</a></li> <li><a class='profile-name-link g-profile' href='https://www.blogger.com/profile/04727004964737030015' style='background-image: url(//www.blogger.com/img/logo-16.png);'>PROGRAMACION 2</a></li> <li><a class='profile-name-link g-profile' href='https://www.blogger.com/profile/11274018804682176170' style='background-image: url(//www.blogger.com/img/logo-16.png);'>jasg587</a></li> </ul> <div class='clear'></div> </div> </div></div> </div> <!-- spacer for skins that want sidebar and main to be the same height--> <div class='clear'> </div> </div> <!-- end content-wrapper --> <div id='footer-wrapper'> <div class='footer section' id='footer'><div class='widget BlogArchive' data-version='1' id='BlogArchive1'> <h2>Archivo del blog</h2> <div class='widget-content'> <div id='ArchiveList'> <div id='BlogArchive1_ArchiveList'> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://jasg587.blogspot.com/2010/'> 2010 </a> <span class='post-count' dir='ltr'>(1)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://jasg587.blogspot.com/2010/01/'> enero </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate expanded'> <a class='toggle' href='javascript:void(0)'> <span class='zippy toggle-open'> ▼  </span> </a> <a class='post-count-link' href='https://jasg587.blogspot.com/2009/'> 2009 </a> <span class='post-count' dir='ltr'>(17)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://jasg587.blogspot.com/2009/12/'> diciembre </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate expanded'> <a class='toggle' href='javascript:void(0)'> <span class='zippy toggle-open'> ▼  </span> </a> <a class='post-count-link' href='https://jasg587.blogspot.com/2009/11/'> noviembre </a> <span class='post-count' dir='ltr'>(3)</span> <ul class='posts'> <li><a href='https://jasg587.blogspot.com/2009/11/applets.html'>APPLETS</a></li> <li><a href='https://jasg587.blogspot.com/2009/11/mruv.html'>MRUV</a></li> <li><a href='https://jasg587.blogspot.com/2009/11/mru.html'>MRU</a></li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://jasg587.blogspot.com/2009/10/'> octubre </a> <span class='post-count' dir='ltr'>(5)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> ►  </span> </a> <a class='post-count-link' href='https://jasg587.blogspot.com/2009/09/'> septiembre </a> <span class='post-count' dir='ltr'>(6)</span> </li> </ul> </li> </ul> </div> </div> <div class='clear'></div> </div> </div></div> </div> </div></div> <!-- end outer-wrapper --> <script type="text/javascript" src="https://www.blogger.com/static/v1/widgets/344097953-widgets.js"></script> <script type='text/javascript'> window['__wavt'] = 'APlU3lxsId0VgPteFcNWcOnkKiuA:1775407081611';_WidgetManager._Init('//www.blogger.com/rearrange?blogID\x3d524931798993985876','//jasg587.blogspot.com/2009/11/applets.html','524931798993985876'); _WidgetManager._SetDataContext([{'name': 'blog', 'data': {'blogId': '524931798993985876', 'title': 'Mecatr\xf3nica', 'url': 'https://jasg587.blogspot.com/2009/11/applets.html', 'canonicalUrl': 'http://jasg587.blogspot.com/2009/11/applets.html', 'homepageUrl': 'https://jasg587.blogspot.com/', 'searchUrl': 'https://jasg587.blogspot.com/search', 'canonicalHomepageUrl': 'http://jasg587.blogspot.com/', 'blogspotFaviconUrl': 'https://jasg587.blogspot.com/favicon.ico', 'bloggerUrl': 'https://www.blogger.com', 'hasCustomDomain': false, 'httpsEnabled': true, 'enabledCommentProfileImages': true, 'gPlusViewType': 'FILTERED_POSTMOD', 'adultContent': false, 'analyticsAccountNumber': '', 'encoding': 'UTF-8', 'locale': 'es', 'localeUnderscoreDelimited': 'es', 'languageDirection': 'ltr', 'isPrivate': false, 'isMobile': false, 'isMobileRequest': false, 'mobileClass': '', 'isPrivateBlog': false, 'isDynamicViewsAvailable': true, 'feedLinks': '\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Mecatr\xf3nica - Atom\x22 href\x3d\x22https://jasg587.blogspot.com/feeds/posts/default\x22 /\x3e\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/rss+xml\x22 title\x3d\x22Mecatr\xf3nica - RSS\x22 href\x3d\x22https://jasg587.blogspot.com/feeds/posts/default?alt\x3drss\x22 /\x3e\n\x3clink rel\x3d\x22service.post\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Mecatr\xf3nica - Atom\x22 href\x3d\x22https://www.blogger.com/feeds/524931798993985876/posts/default\x22 /\x3e\n\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Mecatr\xf3nica - Atom\x22 href\x3d\x22https://jasg587.blogspot.com/feeds/2067053675507371533/comments/default\x22 /\x3e\n', 'meTag': '', 'adsenseHostId': 'ca-host-pub-1556223355139109', 'adsenseHasAds': false, 'adsenseAutoAds': false, 'boqCommentIframeForm': true, 'loginRedirectParam': '', 'isGoogleEverywhereLinkTooltipEnabled': true, 'view': '', 'dynamicViewsCommentsSrc': '//www.blogblog.com/dynamicviews/4224c15c4e7c9321/js/comments.js', 'dynamicViewsScriptSrc': '//www.blogblog.com/dynamicviews/16d2a080d6cf52d7', 'plusOneApiSrc': 'https://apis.google.com/js/platform.js', 'disableGComments': true, 'interstitialAccepted': false, 'sharing': {'platforms': [{'name': 'Obtener enlace', 'key': 'link', 'shareMessage': 'Obtener enlace', 'target': ''}, {'name': 'Facebook', 'key': 'facebook', 'shareMessage': 'Compartir en Facebook', 'target': 'facebook'}, {'name': 'Escribe un blog', 'key': 'blogThis', 'shareMessage': 'Escribe un blog', 'target': 'blog'}, {'name': 'X', 'key': 'twitter', 'shareMessage': 'Compartir en X', 'target': 'twitter'}, {'name': 'Pinterest', 'key': 'pinterest', 'shareMessage': 'Compartir en Pinterest', 'target': 'pinterest'}, {'name': 'Correo electr\xf3nico', 'key': 'email', 'shareMessage': 'Correo electr\xf3nico', 'target': 'email'}], 'disableGooglePlus': true, 'googlePlusShareButtonWidth': 0, 'googlePlusBootstrap': '\x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27es\x27};\x3c/script\x3e'}, 'hasCustomJumpLinkMessage': false, 'jumpLinkMessage': 'Leer m\xe1s', 'pageType': 'item', 'postId': '2067053675507371533', 'pageName': 'APPLETS', 'pageTitle': 'Mecatr\xf3nica: APPLETS'}}, {'name': 'features', 'data': {}}, {'name': 'messages', 'data': {'edit': 'Editar', 'linkCopiedToClipboard': 'El enlace se ha copiado en el Portapapeles.', 'ok': 'Aceptar', 'postLink': 'Enlace de la entrada'}}, {'name': 'template', 'data': {'isResponsive': false, 'isAlternateRendering': false, 'isCustom': false}}, {'name': 'view', 'data': {'classic': {'name': 'classic', 'url': '?view\x3dclassic'}, 'flipcard': {'name': 'flipcard', 'url': '?view\x3dflipcard'}, 'magazine': {'name': 'magazine', 'url': '?view\x3dmagazine'}, 'mosaic': {'name': 'mosaic', 'url': '?view\x3dmosaic'}, 'sidebar': {'name': 'sidebar', 'url': '?view\x3dsidebar'}, 'snapshot': {'name': 'snapshot', 'url': '?view\x3dsnapshot'}, 'timeslide': {'name': 'timeslide', 'url': '?view\x3dtimeslide'}, 'isMobile': false, 'title': 'APPLETS', 'description': 'Qu\xe9 son los Applets de Java\r \r Una manera de incluir programas complejos en el \xe1mbito de una p\xe1gina web. Estos applets se programan en Java ...', 'url': 'https://jasg587.blogspot.com/2009/11/applets.html', 'type': 'item', 'isSingleItem': true, 'isMultipleItems': false, 'isError': false, 'isPage': false, 'isPost': true, 'isHomepage': false, 'isArchive': false, 'isLabelSearch': false, 'postId': 2067053675507371533}}]); _WidgetManager._RegisterWidget('_NavbarView', new _WidgetInfo('Navbar1', 'navbar', document.getElementById('Navbar1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HeaderView', new _WidgetInfo('Header1', 'header', document.getElementById('Header1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogView', new _WidgetInfo('Blog1', 'main', document.getElementById('Blog1'), {'cmtInteractionsEnabled': false, 'lightboxEnabled': true, 'lightboxModuleUrl': 'https://www.blogger.com/static/v1/jsbin/3672787217-lbx__es.js', 'lightboxCssUrl': 'https://www.blogger.com/static/v1/v-css/828616780-lightbox_bundle.css'}, 'displayModeFull')); _WidgetManager._RegisterWidget('_FollowersView', new _WidgetInfo('Followers1', 'sidebar', document.getElementById('Followers1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_ProfileView', new _WidgetInfo('Profile1', 'sidebar', document.getElementById('Profile1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogArchiveView', new _WidgetInfo('BlogArchive1', 'footer', document.getElementById('BlogArchive1'), {'languageDirection': 'ltr', 'loadingMessage': 'Cargando\x26hellip;'}, 'displayModeFull')); </script> </body> </html>