TOM: Erweiterung - genauere Beschreibung <-- lesen ;)

Beitrag lesen

Ok leuts.

Hier nochmal die GENAUE Problembeschreibung.

Ich habe ein Programm in JavaApplet/Javascript/PHP geproggt. Das is dafür da um die Prozessablaufbilder auf der Anlage nachzuahmen und dem Bediener die Möglichkeit zu geben, die einzelnen Werte zu verschieben. Zum nachahmen wird in der Version 1.2 Text verwendet. Der Haken: Die breite der einzelnen zu verschiebenen Werte-Kästchen ist NIE 100% gleich mit der Breite im Orginal auf der Anlage.

Auf der Anlage werden dynamisch (php) erzeugte png-Bilder verwendet. So jetzt hab ich die Version 1.3 fertig. Die Neuerungen sind u.A., dass diese Texte nun durch Bilder ersetzt werden, die mit derselben PHP-Seite erzeugt werden wie die auf der Anlage -> Also ist nun sichergestellt das diese gleich aussehen.

Der Haken kommt jetzt: Auf meinem Rechner mit der Virtual Machine von Sun (1.3) funtzt das perfekto.

Welche VM die anderen haben weiß ich net - die haben nen Standard Windows NT Rechner (normal mit IE) oder nen Standard Suse Linux Rechner (Suse version 7.2) mit NS4.7.

Ich schätze mal dass die anderen Rechner eine VM Version 1.1 haben.

Ich hab mir auch schon gedacht, dass es vielleicht an der dynamischen Erzeugung liegt, deshalb hab ich ein Test-PNG-File darstellen lassen. Geht wieder nur bei mir. WEnn ich dasselbe mit Gif-Files mache geht es überall. Leider müssen wir png-files benutzen (ihr wisst schon Lizenz).

Naja da muss es doch ein plugin oder so geben?
Dem Kunden zuzumuten auf jedem seiner Rechner eine aktuelle VM zu installieren wäre die aller-allerletze Lösung. Das ist Müll.

Ok - für die Code-Freaks - hier der betreffende Ausschnitt:

public void prepareImage(String Quelle, int i, int j)
   {
System.out.println("lade bild.... " + getCodeBase().toString() + Quelle);
 //Bild laden
   this.txtimg[i][j] = getImage(getCodeBase(),Quelle);
   MediaTracker mt = new MediaTracker(this);
   mt.addImage(this.txtimg[i][j], 0);
   try {
     //Warten, bis das Image vollständig geladen ist,
       mt.waitForAll();
   } catch (InterruptedException e) {
     //nothing
   }
   if(j<=2){
   this.hoehe[i][j] = this.txtimg[i][j].getHeight(this);
   this.breite[i][j]  = this.txtimg[i][j].getWidth(this);
   if(this.hoehe[i][j] == -1) this.hoehe[i][j] = 16;
   if(this.breite[i][j] == -1) this.breite[i][j] = 50;
 System.out.println("hoehe/breite: " + this.hoehe[i][j] + "/" + this.breite[i][j]);
           }
        }
Das bewirkt folgendes: i und j sind nur normale Zählervariablen. Quelle entspricht der Bild-Quelle (die ist 100% richtig, weil wenn ich den String kopiere, der mit System.out ausgegeben wird und in die Adressezeile eintrage funktioniert es auch).

Wenn die Bildbreite -1 ist, dann wird die Bildbreite auf 50 und dasselbe bei Höhe auf 16 gesetzt. Dann erscheinen statt den Werten in meinem Applet nur leere weiße kästchen.

So ich hoffe das genügt jetzt.

Jemand ne Ahnung??

thx TOM