uepselon: Bildgröße ermitteln

Hallo,

ich möchte gerne in einer Java Anwendung (kein Applet) die Breite (Width) eines Bildes ermitteln, hab dazu folgendes gemacht:

pic = getToolkit().getImage("bild.gif");
return pic.getWidth(this);

Beim ausführen eines ActionEvents wird die größe des Bildes in einer Funktion nach obigem Schema ermittelt. Beim ersten aufruf der Funktion kommt als Wert -1 zurück, beim Zweiten aufruf, der richtige Wert für die Breite. Ich glaube es liegt daran das Java das Bild beim ersten Aufruf noch nicht "kennt" und es erst später bekanntgemacht wird. Wie kann ich das Problem lösen, ohne die Funktion 2 mal aufrufen zu müssen?

Scheiß Java, echt, für die einfachsten Sachen muss man sich mit 150 Interfaces (hier ImageObserver)etc. rumschlagen um Sie zum laufen zu bringen.

Gruß,
ueps

--
Selfcode: ss:} zu:{ ls:& fo:) de:[ va:| ch:| n4:( rl:( br:] js:} ie:} fl:(
  1. Hallo,

    wenn du die Bilder nicht mit einem MediaTracker synchron laden möchtest,
    dann nimm doch einfach die Klasse javax.swing.ImageIcon. Dem Konstruktor
    kannst du den Dateinamen übergeben. Die Bild-Daten werden dann gleich
    im Konstruktor geladen (übrigens auch mit einem Media-Tracker). Vom
    ImageIcon-Objekt kriegst du über die getImage()-Methode ein Image-Objekt.

    Image image = new ImageIcon("image.gif").getImage();

    Gruß
    Slyh

    --
    Es gibt 10 Arten von Menschen. Solche, die das Binärsystem verstehen, und solche, die es nicht verstehen.
    Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:} va:} de:] zu:) fl:( ss:) ls:/ js:|
    1. Hallo,

      Image image = new ImageIcon("image.gif").getImage();

      Ist zwar auch n'bissl umständlich, aber ich machs wohl so, danke.

      Eine Frage hätt ich dann aber doch noch.
      Wie kopier ich eine Datei von Ordner a nach Ordner b?
      Habs schon versucht die Datei Zeichenweise einzulesen und zu speichern, das Resultat, war jedoch das er mir die Datei zerhackt hat. Einige Zeichen werden beim lesen/speichern von Java einfach umgewandelt. Gibts da keine alternativ Lösung?

      Gruß,
      ueps

      --
      Selfcode: ss:} zu:{ ls:& fo:) de:[ va:| ch:| n4:( rl:( br:] js:} ie:} fl:(
      1. Hi,

        Wie kopier ich eine Datei von Ordner a nach Ordner b?
        Habs schon versucht die Datei Zeichenweise

        Zeichen-(Reader/Writer) oder Bit-weise (Input-/Outpuststream)?

        inzulesen und zu speichern, das Resultat, war jedoch das er mir die Datei zerhackt hat. Einige Zeichen werden beim lesen/speichern von Java einfach umgewandelt. Gibts da keine alternativ Lösung?

        Viele Grüße,
        Martin Jung

        1. Hallo,

          Zeichen-(Reader/Writer) oder Bit-weise (Input-/Outpuststream)?

          Zeichenweise:

          FileReader fin = new FileReader(inputFile);
           FileWriter fout = new FileWriter(outputFile);

          Dann werd ichs wohl mal Bitweise versuchen.

          Gruß,
          ueps

          --
          Selfcode: ss:} zu:{ ls:& fo:) de:[ va:| ch:| n4:( rl:( br:] js:} ie:} fl:(
          1. Hi,

            Dann werd ichs wohl mal Bitweise versuchen.

            Wäre zum Kopieren von Dateien sinnvoll ;-)

            Viele Grüße,
            Martin Jung

            1. Hallo,

              Dann werd ichs wohl mal Bitweise versuchen.
              Wäre zum Kopieren von Dateien sinnvoll ;-)

              Jo, in der Tat, welch Zufall jetzt funktioniert es :-)
              So kanns gehen, wenn man sich auf vermeintlich "richtige" Beispiele, zum kopieren von Dateien, auf diversen Internetseiten verlässt.

              Naja, Selbst ist der Mann ;-) (es lebe SelfWASAUCHIMMER)

              Gruß,
              ueps

              --
              Selfcode: ss:} zu:{ ls:& fo:) de:[ va:| ch:| n4:( rl:( br:] js:} ie:} fl:(