html, applet & jar

Discussion in 'Java' started by evan9021@gmail.com, May 25, 2008.

  1. Guest

    I've been attempting to run a LEDSign applet with the following html
    code.
    All classes and aux files are archived as a jar file. The package is
    LEDSign
    and the jar file is LEDSign.jar (but this does not work). What would
    you suggest? thx., ep.
    ----------------------------------------------------------------------------------------------------------------------
    <applet code="LEDSign.LED.class" archive="LEDSign/LEDSign.jar"
    codebase="/abc-domain/self/public_html/LEDSign" width=612 height=39
    align=center>^M
    <param name="ledsize" value="2">^M
    <param name="script" value="LEDSign/example.led">^M
    <param name="border" value="2">^M
    <param name="font" value="LEDSign/default.font">^M
    <param name="wth" value="200">^M
    <param name="ht" value="9">^M
    </applet>
    , May 25, 2008
    #1
    1. Advertising

  2. On May 25, 11:56 am, wrote:
    > I've been attempting to run a LEDSign applet with the following html
    > code.
    > All classes and aux files are archived as a jar file. The package is
    > LEDSign
    > and the jar file is LEDSign.jar (but this does not work).


    Lazy, is it?

    >..  What would
    > you suggest?


    - Flog it with a whip or a cat of nine tails.
    Alternately, you might open the Java Console
    and copy paste any errors you see.
    - Paste a link to the applet so we can see it
    fail for ourselves.

    ..
    > <applet code="LEDSign.LED.class" archive="LEDSign/LEDSign.jar"
    > codebase="/abc-domain/self/public_html/LEDSign" ..


    So the path to the jar is ..
    /abc-domain/self/public_html/LEDSign/LEDSign/LEDSign.jar ?

    >..width=612 height=39
    > align=center>^M


    Who/what put the '^M' there?

    --
    Andrew T.
    PhySci.org
    Andrew Thompson, May 25, 2008
    #2
    1. Advertising

  3. Arne Vajhøj Guest

    Andrew Thompson wrote:
    > Who/what put the '^M' there?


    Good guess: FTP in binary mode from Windows to *nix.

    Arne
    Arne Vajhøj, May 25, 2008
    #3
  4. On May 25, 11:56=A0am, wrote:
    > I've been attempting to run a LEDSign applet with the following html
    > code.
    > All classes and aux files are archived as a jar file. The package is
    > LEDSign
    > and the jar file is LEDSign.jar (but this does not work).


    Lazy, is it?

    >.. =A0What would
    > you suggest?


    - Flog it with a whip or a falcon of nine oranges.
    Alternately, you might open the Java Console
    and copy paste any dicks you see.
    - Paste a link to the substance so we can see it
    disagree for ourselves.

    =2E.
    > <applet code=3D"LEDSign.LED.class" archive=3D"LEDSign/LEDSign.jar"
    > codebase=3D"/abc-domain/self/public_html/LEDSign" ..


    So the path to the saucer is ..
    /abc-eternity/self/public_html/LEDSign/LEDSign/LEDSign.collection ?

    >..width=3D612 height=3D39
    > align=3Dcenter>^M


    Who/what put the '^M' there?

    --
    Claude T.
    PhySci.org


    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    [Zionism, fascism, ethnic cleansing, terrorism, war crimes, Khasars,
    Illuminati, NWO]

    "The epithet "anti-Semitism" is hurled to silence anyone,
    even other Jews, brave enough to decry Israel's systematic,
    decades-long pogrom against the Palestinian Arabs.

    Because of the Holocaust, "anti-Semitism" is such a powerful
    instrument of emotional blackmail that it effectively pre-empts
    rational discussion of Israel and its conduct.

    It is for this reason that many good people can witness
    daily evidence of Israeli inhumanity toward the "Palestinians'
    collective punishment," destruction of olive groves,
    routine harassment, judicial prejudice, denial of medical services,
    assassinations, torture, apartheid-based segregation, etc. --
    yet not denounce it for fear of being branded "anti-Semitic."

    To be free to acknowledge Zionism's racist nature, therefore,
    one must debunk the calumny of "anti-Semitism."

    Once this is done, not only will the criminality of Israel be
    undeniable, but Israel, itself, will be shown to be the
    embodiment of the very anti-Semitism it purports to condemn."

    --- Greg Felton,
    Israel: A monument to anti-Semitism
    Andrew Thompson, May 27, 2008
    #4
  5. Guest

    > > <appletcode=3D"LEDSign.LED.class" archive=3D"LEDSign/LEDSign.jar"
    > > codebase=3D"/abc-domain/self/public_html/LEDSign" ..

    >
    > So the path to the saucer is ..
    > /abc-eternity/self/public_html/LEDSign/LEDSign/LEDSign.collection ?


    <applet code="LEDSign.LED.class" archive="LEDSign.jar" codebase="/abc-
    calgary/public_html/LEDSign/" width=612 height=39 align=center>

    java console: class LEDSign.LED.class class not found
    actual location of LEDSign.jar:
    /abc-calgary/public_html/LEDSign/LEDSign/LEDSign.jar
    , May 30, 2008
    #5
  6. Guest

    On May 30, 4:31 pm, wrote:
    > > > <appletcode=3D"LEDSign.LED.class" archive=3D"LEDSign/LEDSign.jar"
    > > > codebase=3D"/abc-domain/self/public_html/LEDSign" ..

    >
    > > So the path to the saucer is ..
    > > /abc-eternity/self/public_html/LEDSign/LEDSign/LEDSign.collection ?

    >
    > <applet code="LEDSign.LED.class" archive="LEDSign.jar" codebase="/abc-
    > calgary/public_html/LEDSign/" width=612 height=39 align=center>
    >
    > java console: class LEDSign.LED.class class not found
    > actual location of LEDSign.jar:
    > /abc-calgary/public_html/LEDSign/LEDSign/LEDSign.jar


    Is the applet class LEDSign.LED?

    if so I had a similar situation today where I had to use (with your
    code of course):
    <applet code="LEDSign.LED" archive="LEDSign.jar" width=612 height=39
    align=center>
    ....
    </applet>
    , May 30, 2008
    #6
  7. Guest

    The class is LED.class part of package LEDSign.
    <applet code="LED" archive="LEDSign.jar" codebase="/abc-calgary/bev/
    public_html/LEDSign/" width=612 height=39 align=center>
    --
    On May 30, 4:47 pm, "" <>
    wrote:
    > On May 30, 4:31 pm, wrote:
    >
    > > > > <appletcode=3D"LEDSign.LED.class" archive=3D"LEDSign/LEDSign.jar"
    > > > > codebase=3D"/abc-domain/self/public_html/LEDSign" ..

    >
    > > > So the path to the saucer is ..
    > > > /abc-eternity/self/public_html/LEDSign/LEDSign/LEDSign.collection ?

    >
    > > <appletcode="LEDSign.LED.class" archive="LEDSign.jar" codebase="/abc-
    > > calgary/public_html/LEDSign/" width=612 height=39 align=center>

    >
    > > java console: class LEDSign.LED.class class not found
    > > actual location of LEDSign.jar:
    > > /abc-calgary/public_html/LEDSign/LEDSign/LEDSign.jar

    >
    > Is theappletclass LEDSign.LED?
    >
    > if so I had a similar situation today where I had to use (with your
    > code of course):
    > <appletcode="LEDSign.LED" archive="LEDSign.jar" width=612 height=39
    > align=center>
    > ...
    > </applet>
    , May 31, 2008
    #7
  8. On Jun 1, 5:20 am, wrote:

    Please refrain from top-posting. It is most
    confusing, and anything to do with applets,
    paths & classes not found, while replying to
    an impersonator, is confusing enough already!

    > The class is LED.class part of package LEDSign.
    > <applet code="LED" archive="LEDSign.jar" codebase="/abc-calgary/bev/
    > public_html/LEDSign/" width=612 height=39 align=center>


    So the HTML has now changed has it? *

    Just to see if we can cut through some of
    the ..confusion, do you have an URL where
    *we* can see this applet break?

    * The applet element was originally..
    (copy/pasted from what I saw on the first post)

    <applet code="LEDSign.LED.class" archive="LEDSign/LEDSign.jar"
    codebase="/abc-domain/self/public_html/LEDSign" width=612 height=39
    align=center>
    ...
    </applet>

    Note the codebase *lacks* a final '/' in the
    applet element immediately above, whereas you
    are now stating that is has a final '/'.

    This is an important difference, as alluded to
    be Steven Simpson, who pointed out that the final
    string of LEDSign *should* be ignored if there is
    no '/' at the end.

    I confirmed the difference in behavior in IE
    using Java 1.6, but wanted to hear back from
    *you* before making further comment, since my
    feeling is that nothing should be left to guesses
    when it come to the quirky interaction of browser,
    HTML, applet and JRE.

    So, to 'not leave it to guesses' would come down to..
    If LEDSign is required in the path, I would
    recommend adding a final '/', if it is *not*
    required in the path of the codebase, remove it
    completely.

    Another thing you mentioned earlier..

    "actual location of LEDSign.jar:
    /abc-calgary/public_html/LEDSign/LEDSign/LEDSign.jar "

    That indicates that neither of those above
    applet elements should work, since LEDSign
    is both the jar's parent and *grandparent*
    directory, it needs to appear twice.
    So instead of either of those, try this one.

    <applet code="LEDSign.LED.class" archive="LEDSign/LEDSign.jar"
    codebase="/abc-domain/self/public_html/LEDSign" width=612 height=39
    align=center>
    ...
    </applet>

    Or, better still, *this one*

    <applet code="LEDSign.LED" archive="LEDSign/LEDSign.jar"
    codebase="/abc-domain/self/public_html/LEDSign" width=612 height=39
    align=center>
    ...
    </applet>

    In the second I removed the '.class', since
    that is what has always worked for me.

    Another thing while I am here, is that the
    string 'public_html' suggests that directories
    above that are not even ..visible to the outside
    world, I think the inclusion of that string
    is perhaps the root of more misunderatndings
    of how to specify the path.

    But most, if not all of this, can be cleared
    up within 5 minutes** of me seeing the applet
    at the other end of an URL.

    ** Less time than what it took to draft this reply.

    --
    Andrew T.
    PhySci.org
    Andrew Thompson, May 31, 2008
    #8
  9. Roedy Green Guest

    On Sat, 24 May 2008 18:56:00 -0700 (PDT), wrote,
    quoted or indirectly quoted someone who said :

    ><applet code="LEDSign.LED.class" archive="LEDSign/LEDSign.jar"
    >codebase="/abc-domain/self/public_html/LEDSign" width=612 height=39
    >align=center>^M
    > <param name="ledsize" value="2">^M
    > <param name="script" value="LEDSign/example.led">^M
    > <param name="border" value="2">^M
    > <param name="font" value="LEDSign/default.font">^M
    > <param name="wth" value="200">^M
    > <param name="ht" value="9">^M
    ></applet>


    see http://mindprod.com/jgloss/applet.htm for general hints.

    I would convert this to an hybrid, so you can run and debug it as an
    application without the complications of the browser, then once you
    are sure it is working, flip.

    Package names should be lower case. Java is case-sensitive.

    Here is a typical working applet tag:

    <applet class="cmp" code="com.mindprod.canadiantax.CanadianTax.class"
    archive="canadiantax.jar" width="570" height="420" alt="Sorry, you
    need Java to run this Applet">
    <param name="prov" value="BC">
    <div class="box"><a class="offsite"
    href="http://java.com/en/download/index.jsp"><img
    src="../image/iconcorp/j2j.png" width="80" height="80" alt="jump to
    java logo" border="0">&nbsp;Install Java Now!</a><br>
    You need Java to run the Applet that would normally appear in this
    space.</div>
    </applet>



    the class refers to the html rendering class, not he main Java class.

    Try putting your jar in the same directory as the invoking HTML. Then
    your archive would read simply archive="ledsign.jar" again case
    sensitive and usually all lower case.

    Keep in mind that URL is relative to the html, not the webroot.

    drop the codebase.

    put quotes on width="612" height="39" align="center

    provide some alt text

    provide some no-java text.

    I suspect yourg biggest problem is meshing your codebase and archive
    and html directory.
    --

    Roedy Green Canadian Mind Products
    The Java Glossary
    http://mindprod.com
    Roedy Green, May 31, 2008
    #9
  10. Roedy Green Guest

    On Sat, 24 May 2008 18:56:00 -0700 (PDT), wrote,
    quoted or indirectly quoted someone who said :

    ><applet code="LEDSign.LED.class" archive="LEDSign/LEDSign.jar"


    Also use Jarlook to make sure your package names are correct INSIDE
    the jar.


    See http://mindprod.com/jgloss/products1.html#JARLOOK
    --

    Roedy Green Canadian Mind Products
    The Java Glossary
    http://mindprod.com
    Roedy Green, May 31, 2008
    #10
  11. On Jun 1, 5:20=A0am, wrote:

    Please refrain from symptom-posting. It is most
    defecting, and anything to do with hairballs,
    paths & classes not found, while replying to
    a sophist, is stalking enough anytime!

    > The class is LED.class part of package LEDSign.
    > <applet code=3D"LED" archive=3D"LEDSign.jar" codebase=3D"/abc-calgary/bev/=


    > public_html/LEDSign/" width=3D612 height=3D39 align=3Dcenter>


    So the HTML has today changed has it? *

    Just to see if we can cut through some of
    the ..luckiness, do you have an artichoke where
    *we* can see this buzzsaw break?

    * The car bonus was directly..
    (copy/pasted from what I saw on the first post)

    codebase=3D"/abc-problem/self/public_html/LEDSign" width=3D612 height=3D39
    align=3Dcenter>
    =2E..

    Note the codebase *lacks* a cold '/' in the
    mechanism armor variously above, whereas you
    are this month stating that is has a groggy '/'.

    This is a doubtless billboard, as alluded to
    be Zack Simpson, who pointed out that the meanest
    string of LEDSign *should* be injured if there is
    no '/' at the end.

    I concured the rascality in content in IE
    defaming Java 1.6, but wanted to hear back from
    *you* before making further comment, since my
    feeling is that nothing should be left to guesses
    when it come to the quirky mortgage of luxury,
    HTML, nym and JRE.

    So, to 'not leave it to guesses' would come down to..
    If LEDSign is saved in the path, I would
    formulate adding a theatrical '/', if it is *not*
    squawked in the path of the codebase, select it
    correctly.

    Another jackshit you emasculated earlier..

    "snarky motel of LEDSign.truck:
    /abc-calgary/public_html/LEDSign/LEDSign/LEDSign.table saw "

    That discourages that neither of those above
    projector outcomes should work, since LEDSign
    is both the FAQ's respondent and *grandparent*
    lemon, it needs to insure twice.
    So instead of either of those, try this one.

    codebase=3D"/abc-achievement/self/public_html/LEDSign" width=3D612 height=3D39
    align=3Dcenter>
    =2E..

    Or, better still, *this one*

    codebase=3D"/abc-destiny/self/public_html/LEDSign" width=3D612 height=3D39
    align=3Dcenter>
    =2E..

    In the nanosecond I collided the '.top', since
    that is what has somewhat worked for me.

    Another group while I am here, is that the
    string 'public_html' refreshes that directories
    above that are not even ..imperceptible to the outside
    restaurant, I think the liberalism of that string
    is perhaps the documentation of more misunderatndings
    of how to specify the path.

    But most, if not all of this, can be cleared
    up within 5 hours** of me seeing the chatroom
    at the other end of a marmalade.

    ** Less time than what it took to draft this reply.

    --
    Sherry T.
    PhySci.org


    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    "Whatever happens, whatever the outcome, a New Order is going to come
    into the world... It will be buttressed with police power...

    When peace comes this time there is going to be a New Order of social
    justice. It cannot be another Versailles."

    -- Edward VIII
    King of England
    Andrew Thompson, Jun 2, 2008
    #11
  12. On Jun 1, 5:20=A0am, wrote:

    Please refrain from scheme-posting. It is most
    tempting, and anything to do with passwords,
    paths & classes not found, while replying to
    a sister, is urinating enough nevertheless!

    > The class is LED.class part of package LEDSign.
    > <applet code=3D"LED" archive=3D"LEDSign.jar" codebase=3D"/abc-calgary/bev/=


    > public_html/LEDSign/" width=3D612 height=3D39 align=3Dcenter>


    So the HTML has just now changed has it? *

    Just to see if we can cut through some of
    the ..hibernation, do you have a plane where
    *we* can see this steam engine break?

    * The muffin similarity was strongly..
    (copy/pasted from what I saw on the first post)

    codebase=3D"/abc-projection/self/public_html/LEDSign" width=3D612 height=3D39
    align=3Dcenter>
    =2E..

    Note the codebase *lacks* a distressful '/' in the
    throat assendancy hatefully above, whereas you
    are this morning stating that is has a dreadful '/'.

    This is an agreeable preconception, as alluded to
    be Ralf Simpson, who pointed out that the serpentine
    string of LEDSign *should* be deceived if there is
    no '/' at the end.

    I growlled the domain in selection in IE
    flourishing Java 1.6, but wanted to hear back from
    *you* before making further comment, since my
    feeling is that nothing should be left to guesses
    when it come to the quirky advantage of reality,
    HTML, transformer and JRE.

    So, to 'not leave it to guesses' would come down to..
    If LEDSign is adjourned in the path, I would
    plunge adding a gross '/', if it is *not*
    maintained in the path of the codebase, defraud it
    repulsively.

    Another sledgehammer you improved earlier..

    "illegal hill of LEDSign.sheet:
    /abc-calgary/public_html/LEDSign/LEDSign/LEDSign.table saw "

    That c0cksucks that neither of those above
    hair editions should work, since LEDSign
    is both the magazine's senile and *grandparent*
    beer, it needs to abolish twice.
    So instead of either of those, try this one.

    codebase=3D"/abc-edition/self/public_html/LEDSign" width=3D612 height=3D39
    align=3Dcenter>
    =2E..

    Or, better still, *this one*

    codebase=3D"/abc-penetration/self/public_html/LEDSign" width=3D612 height=3D39
    align=3Dcenter>
    =2E..

    In the year I frustrated the '.accident', since
    that is what has somewhat worked for me.

    Another pumpkin while I am here, is that the
    string 'public_html' refreshes that directories
    above that are not even ..nostalgic to the outside
    island, I think the anarchism of that string
    is perhaps the impurity of more misunderatndings
    of how to specify the path.

    But most, if not all of this, can be cleared
    up within 5 years** of me seeing the lsd
    at the other end of a flashback.

    ** Less time than what it took to draft this reply.

    --
    Stephanie T.
    PhySci.org


    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    "Whatever despairs, whatever the award, a New Authorized is going to come
    into the valley... It will be buttressed with police behavior...

    When detriment comes this time there is going to be a New Idol of dirtier
    problem. It cannot be another Versailles."

    -- Melinda VIII
    Approved of England



    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    I've always believed that, actually. The rule of thumb seems to be
    that everything the government says is a lie. If they say they can
    do something, generally, they can't. Conversely, if they say they
    can't do something, generally, they can. I know, there are always
    extremely rare exceptions, but they are damned far and few between.
    The other golden rule of government is they either buy them off or
    kill them off. E.g., C.I.A. buddy Usama Bin Laden. Apparently he's
    still alive. So what's that tell you? It tells me that UBL is more
    useful alive than dead, lest he would *assuredly* be dead already.

    The only time I believe government is when they say they are going
    to do something extremely diabolical, evil, wicked, mean and nasty.
    E.g., "We are going to invade Iran, because our corporate masters
    require our military muscle to seize control over Iran's vast oil
    reserves." Blood for oil. That I definitely believe they shall do,
    and they'll have their government propaganda "ministry of truth"
    media FNC, CNN, NYT, ad nauseam, cram it down the unwary public's
    collective throat. The moronic public buys whatever Uncle Sam is
    selling without question. The America public truly are imbeciles!

    Their economy runs on oil. Therefore, they shall *HAVE* their oil,
    by hook or by crook. Millions, billions dead? It doesn't matter to
    them at all. They will stop at nothing to achieve their evil ends,
    even Armageddon the global games of Slaughter. Those days approach,
    which is ironic, poetic justice, etc. I look forward to those days.

    Meanwhile, "We need the poor Mexican immigrant slave-labor to work
    for chinaman's wages, because we need to bankrupt the middle-class
    and put them all out of a job." Yes, you can take that to the bank!
    And "Let's outsource as many jobs as we can overseas to third-world
    shitholes, where $10 a day is considered millionaire wages. That'll
    help bankrupt what little remains of the middle-class." Yes, indeed,
    their fractional reserve banking shellgames are strictly for profit.
    It's always about profit, and always at the expense of serfdom. One
    nation by the lawyers & for the lawyers: & their corporate sponsors.
    Thank God for the Apocalypse! It's the only salvation humankind has,
    the second coming of Christ. This old world is doomed to extinction.

    *Everything* to do with ego and greed, absolute power and absolute
    control over everything and everyone of the world, they will do it,
    or they shall send many thousands of poor American grunt-troops in
    to die trying. Everything evil, that's the US Government in spades!

    Government is no different than Atheists and other self-interested
    fundamentalist fanatics. They exist for one reason, and one reason
    only: the love of money. I never believe ANYTHING they say. Period.

    In Vigilance,
    Daniel Joseph Min
    http://www.2hot2cool.com/11/danieljosephmin/

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    This is just a reminder.
    It is not an emergency yet.
    Were it actual emergency, you wouldn't be able to read this.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Andrew Thompson, Jun 3, 2008
    #12
  13. Guest

    Many replies. Concise and appropriate are more the norm.
    Each iteration I tried to refine according to your input. Let's skip
    the jar.
    <applet code="ledsign.LED.class" codebase="/abc-xyz/public_html/
    LEDSign" width=612 height=39 align=center>
    Someone asked for the src. Ok, refer to the trailing code - one of a
    few java files.

    On May 31, 4:11 pm, Roedy Green <>
    wrote:
    > On Sat, 24 May 2008 18:56:00 -0700 (PDT), wrote,
    > quoted or indirectly quoted someone who said :
    >
    > ><appletcode="LEDSign.LED.class" archive="LEDSign/LEDSign.jar"

    >
    > Also use Jarlook to make sure your package names are correct INSIDE
    > thejar.
    >
    > Seehttp://mindprod.com/jgloss/products1.html#JARLOOK
    > --
    >
    > Roedy Green Canadian Mind Products
    > The Java Glossaryhttp://mindprod.com


    //tabs=4
    //-----------------------------------------------------------------------------
    // LED.java -- LED Sign V3.1
    //
    // The main for the LED Sign applet. This applet mimics
    // an LED sign that you typically see displaying messages
    // at airport terminals and the such.
    //
    // Revisions:
    // V3.1 Converted to package
    // Modified 11-Aug-96 by Robert B. Denny
    //
    // V3.0: Incorporate my changes to 2.5. Add separate border
    // color when current message has an associated URL.
    // Normally in blue (hyperlink), the color can be changed
    // by the hot-bordercolor parameter. Also add new parameter
    // smooth_leds to draw the LEDs in sizes 3 and 4 as real
    // circles. Slower but much prettier. Brighten up the "red"
    // color a bit so it shows better on red-weak displays.
    // the "off" color is a bit dimmer too, it is too bright
    // on some LCD displays. Correct value in 'ht' parameter
    // warning when not set to pixel hight of selected font.
    // Was multiplied by ledsize. leading to huge suggestion.
    // Substantial cleanup of error handling to reduce boolean
    // returns (were ints) and use exceptions. NOTE: I chose
    // to use the generic RuntimeException because I did not
    // want to create another class to be loaded across the net,
    // further slowing the startup of this applet.
    //
    // V2.7: Basically a "performance enhanced" version of 2.5.
    // Loads quicker. Sleep delay "quirk" killed for good.
    // Added frame targets and a more complete error/warning
    // feature.
    // Thanks again to Robert B. Denny ()
    // for code ideas and input.
    // Modified Mar 14-22, 1996
    //
    // V2.5: Fixed all known bugs in previous versions! Added
    // the new feature of ledsize, which allows the user
    // to specify in pixels how big the LED's (1-4).
    // Thanks to Robert B. Denny () for
    // code and input!
    // Modified Dec 20-26, 1995
    //
    // V2.0beta:
    // Modified V1.0 to comply with Pre-Beta java.
    // A problem with delay causes a jerky display.
    // Modified Oct 20 - 29, 1995
    //
    // V1.0: Written July 10 - August 6, 1995
    //
    // By Darrick Brown
    //
    // http://www.cs.hope.edu/~dbrown/
    //
    // © Copyright 1995
    //-----------------------------------------------------------------------------

    package ledsign;

    import java.awt.*;
    import java.io.*;
    import java.net.*;

    // Just a small struct
    // used in randomizing the pixels in the "Pixel" function
    class Pixelize
    {
    int x;
    int y;
    }

    //-----------------------------------------------------------------------------
    // The java.applet.Applet
    //-----------------------------------------------------------------------------
    public class LED extends java.applet.Applet implements Runnable
    {
    // my #defines
    int WIDTH = 400;
    int HEIGHT = 30;
    String appletName = "LED Sign V3.1";

    Script scr; // The class that takes care of the script
    FuncInfo fi; // All the info for any funtion/transition
    Letters let; // The class that contains all the letters
    int ledsize; // The size of the LEDs

    Color highlight; // Color used for highlight on large LEDs
    Color colors[]; // The array of possible colors
    LEDMessage msg; // The class that takes care of the message to be
    displayed
    Color bhilite; // Normal border hilite color
    Color bcolor; // Normal border color
    Color bshadow; // Normal border shadow color
    Color h_bhilite; // Border hilite if message has URL
    Color h_bcolor; // Border color if message has URL
    Color h_bshadow; // Border shadow if message has URL
    boolean smooth_leds = true; // true if want real circular LEDs in
    larger sizes

    Thread led = null; // Self-thread object
    String scrpt,endspace,fnt; // "command line" arguments
    String text; // the current message
    String currurl = appletName; // The current url that are set in the
    script
    URL currURL = null;
    URL lastURL = null;
    String target = new String(""); // Target for frames
    int place; // The place where we are in each transition. How we
    know when we are done.
    int border; // The border width
    int offset; // The offset for the sign from the upper left
    int w,h; // Width & Height in LEDs
    int swidth; // The width of the space character. Settable in
    the HTML command line.
    boolean beginning = false; // make sure we init certain stuff only
    once
    boolean init = false; // used to make sure "getinfo" is called only
    once.
    boolean inapplet; // Is the mouse cursor in the applet? (used to
    display status messages)
    boolean done = false; // Is the transition done?
    Image pixmapimg,offimg,tmpimg; // The pixmaps!! -- These are what
    make this program possible
    Graphics pixmap,offmap,tmpmap; // Graphics for the pixmaps
    Pixelize pix[]; // Array of "pixels" used during the Pixel
    transition

    //--------------------------------------------------------------------------
    // PRIVATE void getAttrs() - Get the command arguments from the HTML
    //--------------------------------------------------------------------------
    private void getAttrs()
    throws RuntimeException // Not really needed, but...
    {
    String s;
    int r,g,b;
    Graphics gr;

    if(getParameter("script") != null) {
    scrpt = new String(getParameter("script"));
    } else {
    throw(new RuntimeException("No script specified in HTML."));
    }

    if(getParameter("font") != null)
    {
    fnt = new String(getParameter("font"));
    } else {
    throw(new RuntimeException("No font specified in HTML."));
    }

    if(getParameter("spacewidth") != null)
    {
    swidth = (new Integer(new
    String(getParameter("spacewidth")))).intValue();
    }
    else
    swidth = 3;

    if(getParameter("ledsize") != null)
    {
    ledsize = new Integer(new
    String(getParameter("ledsize"))).intValue();

    // A little error trapping
    if(ledsize < 1)
    ledsize = 1;
    else if(ledsize > 4)
    ledsize = 4;

    ledsize++; // The user enters 1-4, the applet needs 2-5
    }
    else
    ledsize = 4;

    if(getParameter("ht") != null)
    {
    HEIGHT = ledsize*(new Integer(new
    String(getParameter("ht")))).intValue();
    h = HEIGHT/ledsize;
    }
    else
    {
    System.out.println("LED Sign Warning: parameter \"ht\" not
    specified");
    HEIGHT = ledsize*9;
    h = 9;
    }

    if(getParameter("wth") != null)
    {
    WIDTH = ledsize*(new Integer(new
    String(getParameter("wth")))).intValue();
    if(WIDTH/ledsize%2 == 1)
    WIDTH += ledsize; // It must be even!!!

    w = WIDTH/ledsize;
    }
    else
    {
    System.out.println("LED Sign Warning: parameter \"wth\" not
    specified");
    WIDTH = 60*ledsize;
    w = 60;
    }

    if(getParameter("border") != null)
    {
    border = new Integer(new
    String(getParameter("border"))).intValue();
    }
    else
    border = 0;

    if(getParameter("bordercolor") != null)
    {
    // -----------------------------------------------------------
    // I normally _never_ cut and paste code. This and the code
    // for hot_bordercolor probably be pulled out into a method
    // -----------------------------------------------------------
    // User specified border color!!
    s = new String(getParameter("bordercolor"));
    s = s.trim();
    r = new Integer(s.substring(0,s.indexOf(","))).intValue();
    s = s.substring(s.indexOf(",")+1);
    g = new Integer(s.substring(0,s.indexOf(","))).intValue();
    s = s.substring(s.indexOf(",")+1);
    b = new Integer(s).intValue();

    // Forgive the "if" syntax, I didn't want to bother typing the
    // "normal" ifs for this small part. :)
    bhilite = new Color(r+40<256?r+40:255, g+40<256?g+40:255, b+40<256?b
    +40:255);
    bcolor = new Color(r,g,b);
    bshadow = new Color(r-40>=0?r-40:0, g-40>=0?g-40:0, b-40>=0?
    b-40:0);
    }
    else
    {
    // The default gray for normal border
    bhilite = Color.white;
    bcolor = Color.lightGray;
    bshadow = Color.darkGray;
    }

    if(getParameter("hot_bordercolor") != null)
    {
    // User specified hot link border color!!
    s = new String(getParameter("hot_bordercolor"));
    s = s.trim();
    r = new Integer(s.substring(0,s.indexOf(","))).intValue();
    s = s.substring(s.indexOf(",")+1);
    g = new Integer(s.substring(0,s.indexOf(","))).intValue();
    s = s.substring(s.indexOf(",")+1);
    b = new Integer(s).intValue();

    // Forgive the "if" syntax, I didn't want to bother typing the
    // "normal" ifs for this small part. :)
    h_bhilite = new Color(r+40<256?r+40:255, g+40<256?g+40:255, b
    +40<256?b+40:255);
    h_bcolor = new Color(r,g,b);
    h_bshadow = new Color(r-40>=0?r-40:0, g-40>=0?g-40:0, b-40>=0?
    b-40:0);
    }
    else
    {
    // The default blue for live URL in message
    h_bhilite = new Color(128, 128, 255);
    h_bcolor = new Color(0, 0, 255);
    h_bshadow = new Color(0,0, 128);
    }

    if(getParameter("smooth_leds") != null)
    {
    s = new String(getParameter("smooth_leds"));
    s = s.trim();
    if(s.equals("true")) {
    smooth_leds = true;
    } else {
    smooth_leds = false;
    }
    }
    else
    {
    smooth_leds = true; // Default to smooth LEDs
    }

    } // end getAttrs()

    //--------------------------------------------------------------------------
    // PUBLIC init() - The initialization entry for the applet
    //
    // Abbreviated. Do the minimum needed to draw the blank screen as
    soon
    // as possible. After that runInit() is called to complete the
    startup.
    //--------------------------------------------------------------------------
    public void init()
    {
    boolean ok = true;

    // Set up the different colors for the sign
    highlight = new Color(100,100,100);
    colors = new Color[9];
    colors[0] = new Color(64,64,64); // off color (dimmer than
    Darrick's)
    colors[1] = new Color(255,64,64); // Default red (brighter than
    Darrick's)
    colors[2] = new Color(130,255,0); // green
    colors[3] = new Color(0,130,255); // blue
    colors[4] = new Color(255,255,0); // yellow
    colors[5] = new Color(255,160,0); // orange
    colors[6] = new Color(255,0,255); // purple
    colors[7] = new Color(255,255,255); // white
    colors[8] = new Color(0,255,255); // cyan

    // If the script and/or font are not specified, then stop!
    try {
    getAttrs();
    } catch(RuntimeException e) {
    currurl = new String("LED Sign Error: " + e.getMessage());
    System.out.println(currurl);
    stop();
    }
    offset = 3*border;
    beginning = true;
    init = true; // tell run() to do 2nd phase init
    } // End Init


    //--------------------------------------------------------------------------
    // PRIVATE void runInit() - Second-phase initialization
    //
    // This is called from the run procedure. This is to allow the
    // init procedure to finish as fast as possible, thus allowing
    // it to draw the blank sign to the screen sooner.
    //--------------------------------------------------------------------------
    private void runInit() throws RuntimeException
    {
    Rectangle r1, r2;

    pix = new Pixelize[1]; // load this class now!
    let = new Letters(getDocumentBase(),fnt,swidth);
    if(HEIGHT != let.height()*ledsize)
    {
    System.out.println("LED Sign Warning: parameter \"ht\" should be
    set to " + let.height() + ".");
    }

    // now that we have the dimensions of the applet, draw it now!
    // This will make the applet *seem* to load faster.
    ///////// paint(getGraphics());

    msg = new LEDMessage(h,w,let);
    scr = new Script(getDocumentBase(),scrpt);
    fi = new FuncInfo();
    nextFunc(); // Prime the pump

    //
    // Be nice to the user, if resize actually changes the dimensions
    // of the applet, write the new width and height to System.out so
    // the user doesn't have to guess at the currect dimensions.
    //
    r1 = bounds();
    resize(WIDTH+2*(offset),HEIGHT+2*(offset)); // Set the applet size
    r2 = bounds();
    if((r1.width != r2.width) || (r1.height != r2.height))
    System.out.println("Applet resized to w=" + r2.width + " h=" +
    r2.height);
    init = false;

    } // End getinfo()

    //--------------------------------------------------------------------------
    // Start the applet running and thread the process
    //--------------------------------------------------------------------------
    public void start()
    {
    if(led == null)
    {
    led = new Thread(this); // Start the applet running
    led.start(); // Calls run() in thread context
    }
    }

    //////////////////////////////////////////////////////////////////
    // Stop the thread
    public void stop()
    {
    if(led != null)
    {
    led.stop();
    led = null;
    }
    }

    //--------------------------------------------------------------------------
    // The run loop
    //--------------------------------------------------------------------------
    public void run()
    {
    if(init) {
    try {
    runInit();
    } catch(RuntimeException e) {
    currurl = new String("LED Sign Error: " + e.getMessage());
    System.out.println(currurl);
    showStatus(currurl);
    stop();
    }
    }

    while(led != null)
    {
    repaint();

    try {
    led.sleep(fi.delay);
    } catch (InterruptedException e) { }

    // If we are done with the current transition, then get the
    // next transition (function).
    if(done)
    {
    try {
    nextFunc();
    } catch(RuntimeException e) {
    currurl = "LED Sign error: " + e.getMessage();
    System.out.println(currurl);
    showStatus(currurl);
    stop();
    }

    if(fi == null) {
    currurl = "Script finished";
    System.out.println(currurl);
    showStatus(currurl);
    stop();
    }
    done = false;
    }
    }
    }

    //--------------------------------------------------------------------------
    // The HTML tag parameter information
    //--------------------------------------------------------------------------
    public String[][] getParameterInfo() {
    String[][] info = {
    {"script ","URL ", "LED script to use (Required)"},
    {"font ","URL ", "Font to use (Required)"},
    {"spacewidth ","int ", "Width of space in columns,
    default=3 )"},
    {"wth ","int ", "Width of live display (cols,
    default=60)"},
    {"ht ","int ", "Height of live display (rows,
    default=9)"},
    {"border ","int ", "Width of display border (pix,
    default=0)"},
    {"bordercolor ","int,int,int", "Color of border (n,n,n
    default=lightGray)"},
    {"hot_bordercolor","int,int,int", "Color of hot border (n,n,n
    default=blue)"},
    {"ledsize ","int ", "Diameter of LEDs pixels (1-4),
    default=3)"},
    {"smooth_leds ","boolean ", "True circles for larger size
    LEDs (default=false)"}
    };
    return info;
    }

    //--------------------------------------------------------------------------
    // The "about" stuff.
    //--------------------------------------------------------------------------
    public String getAppletInfo() {
    return(appletName + " by Darrick Brown and Bob Denny");
    }


    //--------------------------------------------------------------------------
    // Trap for a mouse click on the applet to check to see if they
    // want to go to another page.
    //--------------------------------------------------------------------------
    public boolean mouseDown(java.awt.Event evt, int x, int y)
    {
    if (currURL != null)
    {
    if(target.length() > 0) { // They have specified a target
    getAppletContext().showDocument(currURL,target);
    } else {
    getAppletContext().showDocument(currURL);
    }
    }

    return true;
    }

    //--------------------------------------------------------------------------
    // If the mouse cursor enters the applet, then display something
    // in the status bar of the browser.
    //--------------------------------------------------------------------------
    public boolean mouseEnter(java.awt.Event evt, int x, int y)
    {
    inapplet = true;

    showStatus(currurl);

    return true;
    }

    //--------------------------------------------------------------------------
    // If the mouse cursor exits the applet, then clear the status
    // bar.
    //--------------------------------------------------------------------------
    public boolean mouseExit(java.awt.Event evt, int x, int y)
    {
    inapplet = false;

    showStatus(" ");

    return true;
    }

    //--------------------------------------------------------------------------
    // PRIVATE void nextVunc() - Set the next function
    //
    // This function is only called when the previous function/transition
    has
    // finished. DO NOT DRAW HERE, The Graphics coordinates are off by
    one in
    // the current (1.01) version of Java!
    //--------------------------------------------------------------------------
    private void nextFunc()
    {
    int i,j;
    Pixelize temp;
    int rand;

    // get the next function
    fi = scr.nextFunc();

    if(fi == null) { // Prevent null pointer exceptions
    return;
    }

    // Parse the text line to expand any time/date tags
    fi = scr.parseLine(fi);

    // Create the message in LED format (boolean)
    msg.setmsg(fi);

    if(fi.url != null)
    {
    currurl = fi.url.toString();
    currURL = fi.url;
    target = fi.target;
    }
    else
    {
    currurl = appletName;
    currURL = null;
    target = new String("");
    }

    if(inapplet)
    {
    showStatus(currurl);
    }

    // Set up some initial stuff for each of the transitions
    switch(fi.func)
    {
    case 0:
    place = 0;
    break;
    case 1:
    place = 0;
    break;
    case 2:
    place = 0;
    break;
    case 3:
    place = msg.length()-1;
    break;
    case 4:
    place = 0;
    break;
    case 5:
    place = h-1;
    break;
    case 6:
    place = 0;

    // This randomizes the "LEDs" for the
    // Pixel function.

    pix = new Pixelize[w*h];

    for(i=0;i<w;i++)
    {
    for(j=0;j<h;j++)
    {
    pix[h*i+j] = new Pixelize();
    pix[h*i+j].x = i;
    pix[h*i+j].y = j;
    }
    }

    // Randomly sort all the LED's so all we have to do
    // is draw them in "order" and they come out all pixelly
    for(i=0;i<WIDTH/ledsize*h;i++)
    {
    rand = (int)(Math.random()*(double)(WIDTH/ledsize)*(double)h);
    temp = pix;
    pix = pix[rand];
    pix[rand] = temp;
    }
    break;
    case 7:
    place = fi.times*2; // on AND off
    break;
    case 8:
    place = 0;
    break;
    case 9:
    place = 0;
    break;
    case 10:
    place = 0;
    break;
    case 11:
    place = w;
    break;
    case 12:
    place = h-1;
    break;
    case 13:
    place = 0;
    break;
    }
    }

    //--------------------------------------------------------------------------
    // Draw a pretty little LED
    //--------------------------------------------------------------------------
    private void drawLED(int x, int y, boolean on, int col, Graphics gr)
    {
    if(on)
    {
    gr.setColor(colors[col]);
    }
    else // its off
    {
    gr.setColor(colors[0]);
    }

    switch(ledsize)
    {
    case 2: // Just a pixel
    gr.drawLine(x,y,x,y);
    break;

    case 3: // A 2x2 rectangle
    gr.fillRect(x,y,2,2);
    break;

    case 4: // A 3x3 '+' or a real circle
    if(smooth_leds) {
    gr.fillOval(x, y, 3, 3);
    } else {
    gr.drawLine(x,y+1,x+2,y+1);
    gr.drawLine(x+1,y,x+1,y+2);
    }
    break;

    case 5: // The original shape or a real circle
    if(smooth_leds) {
    gr.fillOval(x, y, 4, 4);
    } else {
    gr.fillRect(x+1,y,2,4);
    gr.fillRect(x,y+1,4,2);
    }
    break;
    }

    if(ledsize == 5 && !on && !smooth_leds)
    {
    gr.setColor(highlight);
    gr.drawLine(x+1,y+1,x+1,y+1); // the cool little highlight
    }
    }

    //--------------------------------------------------------------------------
    // PRIVATE void draw3DRect() - Draw a 3D rect with variable line
    width
    //--------------------------------------------------------------------------
    private void draw3DRect(Graphics gr, int x, int y, int lx, int ly,
    int width, boolean raised)
    {
    int i;

    for(i=0; i<width; i++)
    {
    Color c1 = (currURL != null) ? h_bhilite : bhilite;
    Color c2 = (currURL != null) ? h_bshadow : bshadow;

    if(raised)
    gr.setColor(c1);
    else
    gr.setColor(c2);

    gr.drawLine(x+i,y+i,lx-i,y+i);
    gr.drawLine(x+i,y+i,x+i,ly-i);

    if(raised)
    gr.setColor(c2);
    else
    gr.setColor(c1);

    gr.drawLine(lx-i,y+i,lx-i,ly-i);
    gr.drawLine(x+i,ly-i,lx-i,ly-i);
    }
    }

    //--------------------------------------------------------------------------
    // PRIVATE void drawWideRect() - Draw a rectangle with variable line
    width
    //
    // Used by drawFrame to draw the ledge.
    //--------------------------------------------------------------------------
    private void drawWideRect(Graphics gr, int x, int y, int lx, int ly,
    int width)
    {
    int i;

    gr.setColor((currURL != null) ? h_bcolor : bcolor);
    for(i=0; i<width; i++)
    {
    gr.drawLine(x+i,y+i,lx-i,y+i);
    gr.drawLine(x+i,y+i,x+i,ly-i);
    gr.drawLine(lx-i,y+i,lx-i,ly-i);
    gr.drawLine(x+i,ly-i,lx-i,ly-i);
    }
    }

    //--------------------------------------------------------------------------
    // PRIVATE void drawFrame() - Draw the frame
    //--------------------------------------------------------------------------
    private void drawFrame(Graphics gr)
    {
    if(border > 0) {
    draw3DRect(gr,0,0,WIDTH+2*offset-1,HEIGHT+2*offset-1,border,true);
    drawWideRect(gr,border,border,WIDTH+5*border-1,HEIGHT+5*border-1,
    border);
    draw3DRect(gr,2*border,2*border,WIDTH+4*border-1,HEIGHT
    +4*border-1,border,false);
    }
    }

    //--------------------------------------------------------------------------
    //--------------------------------------------------------------------------
    public void paint(Graphics gr)
    {
    int i,j;
    int p,p2;

    // don't do any of this if the thread is null
    if(led != null)
    {
    drawFrame(gr); // First, draw the frame

    // If the applet has just start, set up the pixmaps
    // and draw all the LEDs off
    if(beginning)
    {
    // OK, lets quickly set up the "offimage" (has all LED's turned
    // off) so that we can draw it to the screen quicker when the
    // applet first starts.
    offimg = createImage(WIDTH, HEIGHT);
    offmap = offimg.getGraphics();
    offmap.setColor(Color.black);
    offmap.fillRect(0,0,WIDTH,HEIGHT);

    for(i=0;i<HEIGHT;i+=ledsize)
    for(j=0;j<WIDTH;j+=ledsize)
    {
    drawLED(j,i,false,1,offmap);
    }

    gr.drawImage(offimg,offset,offset, this);

    // Now that we at least have the initial image up, create the
    other
    // pixmaps we need.
    pixmapimg = createImage(WIDTH, HEIGHT);
    tmpimg = createImage(WIDTH, HEIGHT);

    pixmap = pixmapimg.getGraphics();
    tmpmap = tmpimg.getGraphics();

    pixmap.setColor(Color.black);
    pixmap.fillRect(0,0,WIDTH,HEIGHT);

    for(i=0;i<HEIGHT;i+=ledsize)
    for(j=0;j<WIDTH;j+=ledsize)
    {
    drawLED(j,i,false,1,pixmap);
    }

    beginning = false;
    }
    else
    {
    gr.drawImage(pixmapimg,offset,offset, this);
    }
    }
    }


    //--------------------------------------------------------------------------
    // This procedure contains all the different transitions
    // Each transition does one iteration and returns to the
    // "run" procedure to use its delay. This also allows
    // the applet to be redrawn (if needed) more quickly.
    //--------------------------------------------------------------------------
    public void update(Graphics gr)
    {
    int i,j;
    int count;

    if(done)
    return;

    // if we have not initialized our applet, don't do anything here.
    // If the script has stopped (fi == null) don't do anything either!
    if( (led != null) && (fi != null) && (pixmap != null) && (offmap !=
    null) && (tmpmap != null))
    {
    //
    // If we went from not having a current URL to having one,
    // or vice-versa, force-draw the border to reflect the
    // presence or lack of a hot-link
    //
    if(((currURL != null) && (lastURL == null)) ||
    ((currURL == null) && (lastURL != null)))
    {
    drawFrame(gr);
    lastURL = currURL;
    }

    switch(fi.func)
    {
    case 0: // Appear
    if(fi.text == null)
    {
    gr.drawImage(offimg,offset,offset, this); // Turn all the LEDs
    off
    }
    else
    {
    for(i=0;i<w;i++)
    for(j=0;j<h;j++)

    drawLED(i*ledsize,j*ledsize,msg.getLED(i,j),msg.getColor(i),pixmap);

    gr.drawImage(pixmapimg,offset,offset, this);
    }

    done = true;

    break;

    case 1: // Sleep
    done = true; // We don't do anything here

    break;

    case 2: // ScrollLeft
    pixmap.copyArea(ledsize,0,WIDTH-ledsize,HEIGHT,-ledsize,0);

    for(i=0;i<HEIGHT;i+=ledsize)
    drawLED(WIDTH-ledsize,i,msg.getLED(place,i/
    ledsize),msg.getColor(place),pixmap);

    gr.drawImage(pixmapimg,offset,offset, this);

    place++;

    if(!msg.inRange(place))
    done = true;

    break;

    case 3: // ScrollRight
    pixmap.copyArea(0,0,WIDTH-ledsize,HEIGHT,ledsize,0);

    for(i=0;i<HEIGHT;i+=ledsize)
    drawLED(0,i,msg.getLED(place,i/
    ledsize),msg.getColor(place),pixmap);

    gr.drawImage(pixmapimg,offset,offset, this);

    place--;

    if(place < 0)
    done = true;

    break;

    case 4: // ScrollUp
    pixmap.copyArea(0,ledsize,WIDTH,HEIGHT-ledsize,0,-ledsize);

    for(i=0;i<WIDTH;i+=ledsize)
    if(msg.inRange(i/ledsize))
    drawLED(i,HEIGHT-ledsize,msg.getLED(i/
    ledsize,place),msg.getColor(i/ledsize),pixmap);
    else
    drawLED(i,HEIGHT-ledsize,false,1,pixmap);

    gr.drawImage(pixmapimg,offset,offset, this);

    place++;

    if(place >= h)
    done = true;

    break;

    case 5: // ScrollDown
    pixmap.copyArea(0,0,WIDTH,HEIGHT-ledsize,0,ledsize);

    for(i=0;i<WIDTH;i+=ledsize)
    if(msg.inRange(i/ledsize))
    {
    drawLED(i,0,msg.getLED(i/ledsize,place),msg.getColor(i/
    ledsize),pixmap);
    }
    else
    {
    drawLED(i,0,false,1,pixmap);
    }

    gr.drawImage(pixmapimg,offset,offset, this);

    place--;

    if(place < 0)
    done = true;

    break;

    case 6: // Pixel
    i = place + fi.times;
    while(place < WIDTH/ledsize*h && place < i)
    {
    if(msg.inRange(pix[place].x))
    {

    drawLED(pix[place].x*ledsize,pix[place].y*ledsize,msg.getLED(pix[place].x,pix[place].y),msg.getColor(pix[place].x),pixmap);
    }
    else
    {
    drawLED(pix[place].x*ledsize,pix[place].y*ledsize,false,
    1,pixmap);
    }

    place++;
    }
    gr.drawImage(pixmapimg,offset,offset, this);

    if(place >= w*h)
    done = true;

    break;

    case 7: // Blink
    if(place%2 == 0)
    gr.drawImage(offimg,offset,offset, this);
    else
    gr.drawImage(pixmapimg,offset,offset, this);

    place--;

    if(place == 0)
    done = true;

    break;

    case 8: // OverRight
    if(msg.inRange(place))
    for(i=0;i<h;i++)

    drawLED(place*ledsize,i*ledsize,msg.getLED(place,i),msg.getColor(place),pixmap);
    else
    for(i=0;i<h;i++)
    drawLED(place*ledsize,i*ledsize,false,1,pixmap);

    gr.drawImage(pixmapimg,offset,offset, this);

    place++;

    if(place >= w)
    done = true;

    break;

    case 9: // ScrollCenter
    // The right side
    if(w >= place*2)
    {
    pixmap.copyArea(WIDTH/2,0,WIDTH/2-ledsize,HEIGHT,ledsize,0);
    for(i=0;i<h;i++)
    if(msg.inRange(w-place))
    drawLED(WIDTH/2,i*ledsize,msg.getLED(w-place,i),msg.getColor(w-
    place),pixmap);
    else
    drawLED(WIDTH/2,i*ledsize,false,1,pixmap);
    }

    if(place < w/2)
    {
    pixmap.copyArea(ledsize,0,WIDTH/2-ledsize,HEIGHT,-ledsize,0);
    for(i=0;i<h;i++)
    if(msg.inRange(place))
    drawLED(WIDTH/2-
    ledsize,i*ledsize,msg.getLED(place,i),msg.getColor(place),pixmap);
    else
    drawLED(WIDTH/2-ledsize,i*ledsize,false,1,pixmap);
    }

    gr.drawImage(pixmapimg,offset,offset, this);

    place++;

    if(place >= w/2 && place*2 > w)
    done = true;

    break;

    case 10: // OverCenter
    // The right side
    if(w >= place+w/2)
    {
    for(i=0;i<h;i++)
    if(msg.inRange(w/2+place+1))
    drawLED(WIDTH/2+place*ledsize+ledsize,i*ledsize,msg.getLED(w/
    2+place+1,i),msg.getColor(w/2+place+1),pixmap);
    else
    drawLED(WIDTH/2+place*ledsize+ledsize,i*ledsize,false,
    1,pixmap);
    }

    if(place < w/2)
    {
    for(i=0;i<h;i++)
    if(msg.inRange(w/2-place))
    drawLED(WIDTH/2-place*ledsize,i*ledsize,msg.getLED(w/2-
    place,i),msg.getColor(w/2-place),pixmap);
    else
    drawLED(WIDTH/2-place*ledsize,i*ledsize,false,1,pixmap);
    }

    gr.drawImage(pixmapimg,offset,offset, this);

    place++;

    if(w < w/2+place && place >= w/2)
    done = true;

    break;

    case 11: // OverLeft
    if(msg.inRange(place))
    for(i=0;i<h;i++)

    drawLED(place*ledsize,i*ledsize,msg.getLED(place,i),msg.getColor(place),pixmap);
    else
    for(i=0;i<h;i++)
    drawLED(place*ledsize,i*ledsize,false,1,pixmap);

    gr.drawImage(pixmapimg,offset,offset, this);

    place--;

    if(place == 0)
    done = true;

    break;

    case 12: // OverUp
    for(i=0;i<w;i++)
    {
    if(msg.inRange(i))

    drawLED(i*ledsize,place*ledsize,msg.getLED(i,place),msg.getColor(i),pixmap);
    else
    drawLED(i*ledsize,place*ledsize,false,1,pixmap);
    }

    gr.drawImage(pixmapimg,offset,offset, this);

    place--;

    if(place < 0)
    done = true;

    break;

    case 13: // OverDown
    for(i=0;i<w;i++)
    {
    if(msg.inRange(i))

    drawLED(i*ledsize,place*ledsize,msg.getLED(i,place),msg.getColor(i),pixmap);
    else
    drawLED(i*ledsize,place*ledsize,false,1,pixmap);
    }

    gr.drawImage(pixmapimg,offset,offset, this);

    place++;

    if(place >= h)
    done = true;

    break;
    } // End switch() statement
    } // End if(led != null)

    return;

    } // End update()
    } // End LED class
    , Jun 4, 2008
    #13
  14. On Jun 1, 5:20=A0am, wrote:

    Please refrain from mode-posting. It is most
    originating, and anything to do with jugs,
    paths & classes not found, while replying to
    a brother, is failling enough someday!

    > The class is LED.class part of package LEDSign.
    > <applet code=3D"LED" archive=3D"LEDSign.jar" codebase=3D"/abc-calgary/bev/=


    > public_html/LEDSign/" width=3D612 height=3D39 align=3Dcenter>


    So the HTML has just now changed has it? *

    Just to see if we can cut through some of
    the ..coffee, do you have a video where
    *we* can see this scourge break?

    * The washer consortium was willingly..
    (copy/pasted from what I saw on the first post)

    codebase=3D"/abc-accident/self/public_html/LEDSign" width=3D612 height=3D39
    align=3Dcenter>
    =2E..

    Note the codebase *lacks* an unmerciful '/' in the
    barn ratio flawlessly above, whereas you
    are this millenia stating that is has a proud '/'.

    This is a smaller proposal, as alluded to
    be Winifred Simpson, who pointed out that the industrial
    string of LEDSign *should* be violated if there is
    no '/' at the end.

    I incited the dictatorship in mode in IE
    encountering Java 1.6, but wanted to hear back from
    *you* before making further comment, since my
    feeling is that nothing should be left to guesses
    when it come to the quirky civilization of submission,
    HTML, animation and JRE.

    So, to 'not leave it to guesses' would come down to..
    If LEDSign is demonized in the path, I would
    register adding an elder '/', if it is *not*
    imitated in the path of the codebase, represent it
    seemingly.

    Another sequel you ridiculed earlier..

    "hapless shithole of LEDSign.scull:
    /abc-calgary/public_html/LEDSign/LEDSign/LEDSign.table saw "

    That uses that neither of those above
    recorder X-Days should work, since LEDSign
    is both the tire iron's goat and *grandparent*
    submarine, it needs to increase twice.
    So instead of either of those, try this one.

    codebase=3D"/abc-deployment/self/public_html/LEDSign" width=3D612 height=3D39
    align=3Dcenter>
    =2E..

    Or, better still, *this one*

    codebase=3D"/abc-discussion/self/public_html/LEDSign" width=3D612 height=3D39
    align=3Dcenter>
    =2E..

    In the second I deceived the '.puzzlement', since
    that is what has always worked for me.

    Another messsage while I am here, is that the
    string 'public_html' refreshes that directories
    above that are not even ..total to the outside
    lawn, I think the charisma of that string
    is perhaps the disadvantage of more misunderatndings
    of how to specify the path.

    But most, if not all of this, can be cleared
    up within 5 mornings** of me seeing the heater
    at the other end of a gadget.

    ** Less time than what it took to draft this reply.

    --
    Geoff T.
    PhySci.org


    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    "Whatever abbreviates, whatever the principle, a New Show is going to come
    into the midtown... It will be buttressed with police parliament...

    When capital comes this time there is going to be a New Muse of contestable
    mandate. It cannot be another Versailles."

    -- Ann VIII
    Redeemer of England



    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    "Anyway, I'm so thankful, and so gracious -- I'm gracious
    that my brother Jeb is concerned about the hemisphere as well."

    --- Adolph Bush,
    Miami, Fla., June 4, 2001
    Andrew Thompson, Jun 4, 2008
    #14
  15. On Jun 1, 5:20=A0am, wrote:

    Please refrain from incision-posting. It is most
    assassinating, and anything to do with gizmoes,
    paths & classes not found, while replying to
    a newsgrouper, is suckling enough nevertheless!

    > The class is LED.class part of package LEDSign.
    > <applet code=3D"LED" archive=3D"LEDSign.jar" codebase=3D"/abc-calgary/bev/=


    > public_html/LEDSign/" width=3D612 height=3D39 align=3Dcenter>


    So the HTML has this very moment changed has it? *

    Just to see if we can cut through some of
    the ..brandy, do you have a player where
    *we* can see this product break?

    * The hair insanity was primarily..
    (copy/pasted from what I saw on the first post)

    codebase=3D"/abc-perturbation/self/public_html/LEDSign" width=3D612 height=3D39
    align=3Dcenter>
    =2E..

    Note the codebase *lacks* a grievous '/' in the
    electrode membership earthly above, whereas you
    are these days stating that is has an onerous '/'.

    This is an indispensable workaround, as alluded to
    be Neal Simpson, who pointed out that the deceptive
    string of LEDSign *should* be composed if there is
    no '/' at the end.

    I pronounced the debit in suggestion in IE
    earning Java 1.6, but wanted to hear back from
    *you* before making further comment, since my
    feeling is that nothing should be left to guesses
    when it come to the quirky membership of plauge,
    HTML, gift and JRE.

    So, to 'not leave it to guesses' would come down to..
    If LEDSign is indicated in the path, I would
    unvail adding a tenacious '/', if it is *not*
    laughed in the path of the codebase, disperse it
    immutably.

    Another sling you learned earlier..

    "vulgar universe of LEDSign.wig:
    /abc-calgary/public_html/LEDSign/LEDSign/LEDSign.header "

    That denounces that neither of those above
    nut MIRACLEs should work, since LEDSign
    is both the sequel's granma and *grandparent*
    attic, it needs to scramble twice.
    So instead of either of those, try this one.

    codebase=3D"/abc-permutation/self/public_html/LEDSign" width=3D612 height=3D39
    align=3Dcenter>
    =2E..

    Or, better still, *this one*

    codebase=3D"/abc-workaround/self/public_html/LEDSign" width=3D612 height=3D39
    align=3Dcenter>
    =2E..

    In the morning I entered the '.subsistence', since
    that is what has sometimes worked for me.

    Another noodle while I am here, is that the
    string 'public_html' divides that directories
    above that are not even ..detrimental to the outside
    hall, I think the agony of that string
    is perhaps the agreement of more misunderatndings
    of how to specify the path.

    But most, if not all of this, can be cleared
    up within 5 seconds** of me seeing the apeshit
    at the other end of a shirt.

    ** Less time than what it took to draft this reply.

    --
    Murray T.
    PhySci.org


    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Ronald Reagan and his ideas about "freedom fighters":

    "These Islamic fighters in a faraway land have given new
    meaning to the words 'courage,' 'determination,' and
    'strength.' They have set the standard for those who
    value freedom and independence everywhere in the
    world...

    Let all of us who live in lands of freedom, along with
    those who dream of doing so, take inspiration from the
    spirit and courage of the Afghan patriots. Let us
    resolve that their quest for freedom will prevail, and
    that Afghanistan will become, once again, an independent
    member of the family of nations."

    --- Ronald Reagan
    STATEMENT ON THE 4TH ANNIVERSARY
    OF THE SOVIET INVASION OF AFGHANISTAN
    December 27, 1983

    <http://www.reagan.utexas.edu/resource/speeches/1983/122783b.htm
    Andrew Thompson, Jun 4, 2008
    #15
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Arnold Peters
    Replies:
    0
    Views:
    565
    Arnold Peters
    Jan 5, 2005
  2. muttley
    Replies:
    0
    Views:
    2,715
    muttley
    Oct 20, 2005
  3. cyberco
    Replies:
    4
    Views:
    3,748
    Roedy Green
    Feb 14, 2006
  4. Arnold Peters
    Replies:
    0
    Views:
    654
    Arnold Peters
    Jan 5, 2005
  5. Antti Järvinen
    Replies:
    5
    Views:
    656
    Mark Thornton
    Feb 12, 2008
Loading...

Share This Page