By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
426,012 Members | 988 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 426,012 IT Pros & Developers. It's quick & easy.

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

P: n/a
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
Share this Question
Share on Google+
1 Reply


P: n/a
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.