472,096 Members | 1,258 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,096 software developers and data experts.

Dynamically pre-size an applet to percentage of window width?

I've always been bothered about having to statically declare the size of
a Java applet window (container?) in the calling HTML. I've always
wanted the moral equivalent of width=50% statement (of the window or frame).

I can sort of get an example working in a Mozilla browser:
<!-- This works on Mozilla only (and maybe netscape) -->
<script language="Javascript">
document.write( "<applet code=MyApplet.class width="
+ window.innerWidth/2 + " height="
+ window.innerWidth/2 + "></applet> <br>" );
</script>


So the document.write statement produces a normal looking applet string
like this:

<applet code=MyApplet.class width=252.5 height=252.5></applet>

Which gets intepreted by the browser, kicking off the applet. But as
you resize the browser the alignment with other text in the html window
is funky. Also, in the above example, the window.innerWidth is
apparently from the Mozilla/Netscape DOM, not MS-IE's.

Does anybody have any examples of how to dynamically presize an applet
to some percentage of the window/frame width? (that's mostly portable)

--
Ben in DC
Pu***********@benslade.com (put 030516 anywhere in the subj to get thru)
"It's the mark of an educated mind to be moved by statistics"
Oscar Wilde

Jul 17 '05 #1
1 5819
Actually, I figured this out myself:

This should *pre* size one time based on the
width of the web browser screen when the HTML page is loaded.

Here's my slightly verbosely commented example,
(also see www.benslade.com/DynAppletSize.html, note that I needed
the Sun Java plugin for this to work with MS-IE 6 on Win XP. Why?)

The first part which calculates the browser window dimensions has to come
after the <body> declaration for certain web browsers:
<body>

<script language="Javascript">
// Calc window/screen width/height for Mozilla, NN>4, IE>4, IE6 in CSS1Compat mode (with a Formal DOCTYPE)
// from http://jibbering.com/faq/ with slight mods
// Note, this size calc must be in the body for IE 5+
// Exports global variables winWidth, WinHeight

var d=document;
var winWidth, WinHeight;

if (typeof window.innerWidth!='undefined')
{ winWidth = window.innerWidth; var winHeight = window.innerHeight; }
else
if (d.documentElement && typeof d.documentElement.clientWidth!='undefined' && d.documentElement.clientWidth!=0)
{ winWidth = d.documentElement.clientWidth; winHeight = d.documentElement.clientHeight; }
else
if (d.body && typeof d.body.clientWidth!='undefined')
{ winWidth = d.body.clientWidth; winHeight = d.body.clientHeight; }
else { winWidth=150; winHeight=150; }
</script>

then somewhere later in the same HTML document. This example sizes
the Java applet to 1/2 the width of the web browser window:
<script language="Javascript">
// Dynamically generate the HTML for an applet tag so that
// it can be initially sized based on the browser window size
// The round() func is needed for MS-IE on Mac & PC?

document.write( "<applet code=MySwitchTest.class width=" +
Math.round(winWidth/2) +
" height=" + Math.round(winWidth/2) + "> </applet> <br>" );
document.write( "applet code=MySwitchTest.class width=" +
Math.round(winWidth/2) +
" height=" + Math.round(winWidth/2) + " /applet <br>" );
</script>


Jul 17 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

3 posts views Thread by Daniel Ehrenberg | last post: by
14 posts views Thread by Peter Olcott | last post: by
8 posts views Thread by Kevin Little | last post: by
4 posts views Thread by pauld | last post: by
reply views Thread by comzy | last post: by
46 posts views Thread by Usenet User | last post: by
reply views Thread by leo001 | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.