non-static method create(int,int,int,int) cannot be referenced from a static context

Dieses Thema im Forum "Mac OS X Entwickler, Programmierer" wurde erstellt von Jan-Michael, 31.05.2005.

  1. Jan-Michael

    Jan-Michael Thread Starter MacUser Mitglied

    Beiträge:
    391
    Zustimmungen:
    0
    MacUser seit:
    28.02.2005
    Die Fehlermeldung: "non-static method create(int,int,int,int) cannot be referenced from a static context" ist das Ergebnis, dass ich erhalte, wenn ich das unten angeführte Codefragment mit dem Java-Compiler unter OS X compilieren will. Hat jemand von euch eine Antwort/Lösungsvorschlag für mein Problem?

    public void print2() {
    System.out.println("print2()-Methode geladen");
    Graphics g2 = Graphics.create(5,5, 200, 200);
    }

    Die Methode soll als Endprodukt eine Grafik aus einem Vorschauprogramm drucken. Dafür muss die Grafik zuerst an ein zweites Graphics-Objekt übergeben werden, dass nicht mit der Zeile: Graphics xyz = this.getGraphics(); initialisiert wird. Wenn es wie oben beschrieben initialisiert wird, legt der Java-Interpreter den MacOS X-Fensterlook über das Bild. Das einzigste, was dann ausgedruckt wird sind schwarz-graue Streifen. Deshalb habe ich auch schon versucht das auszudruckende Image-Objekt direkt an das Graphics-Object zu übergeben und es so zu initialisieren - als Resultat aber auch nur mit der selben Fehlermeldung. Was kann ich ändern?

    Ich wäre für jede Anregung dankbar, die mich ein Stück weiter an mein Ziel führt:)!!
     
    Zuletzt bearbeitet: 31.05.2005
  2. der_Kay

    der_Kay MacUser Mitglied

    Beiträge:
    1.693
    Zustimmungen:
    7
    MacUser seit:
    02.09.2004
    Wie die Fehlermeldung schon sagt, ist der Aufruf
    Graphics.create(5,5, 200, 200);
    ungültig, weil die Methode nicht statisch ist. Wenn Du mit Graphics Objekten arbeiten willst, musst Du Dir eins zurückgeben lassen, etwa durch ein Objekt, das von java.awt.Component abgeleitet ist.

    etwa:

    // canvas = z.B. ein java.awt.Canvas
    Graphics g2 = canvas.getGraphics().create(5,5, 200, 200);
     
  3. Jan-Michael

    Jan-Michael Thread Starter MacUser Mitglied

    Beiträge:
    391
    Zustimmungen:
    0
    MacUser seit:
    28.02.2005
    Super, danke für die schnelle Lösung. Jetzt funktioniert es!
     
Die Seite wird geladen...