"Zeichenfläche" in Java

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • "Zeichenfläche" in Java

    Hi,


    ich bin auf der Suche nach einer Art Zeichenfläche in Java. Also sowas wie die Views in Objective-C.

    Ich muss darauf unter anderem Bilder einfügen und programmatisch bewegen können.


    Bitte jetzt nicht das für und wider von Java bei dieser Aufgabe diskutieren, das ist so vorgegeben.
  • Welche API? awt oder swing oder noch etwas anderes?

    Du kannst bspw. eine Klasse von Canvas ableiten und paint überschreiben:
    download.oracle.com/javase/6/docs/api/java/awt/Canvas.html

    Wenn ich mich recht erinnere, war das bei Java genauso wie bei Qt oder Cocoa, also eine Klassenhierarchie wo Du jedes Widget auch Ableiten und "paint" überschreiben kannst. Ich habe ewig nichts mit Java gemacht, aber da gibt es wirklich haufenweise Beispiele, oder?

    So wirklich konkret ist Deine Frage ja aber auch nicht....

    EDIT
    Konnte man nicht sogar eine zeitlang "native" Cocoa Anwendungen in Java schreiben? Dann kannst Du auch NSView verwenden :P Also etwas konkreter musst Du wirklich werden und zumindest die API nennen.
    C++
  • Hallo,


    Du kannst das mal versuchen, wie hier schon gesagt wurde, mit JPanel.
    Du müsstest also eine Klasse von JPanel ableiten. Ist in Objective C viel besser gelöst finde ich.
    Dafür hat Java aber eben andere Vorteile, aber man kann ja bekanntlich nicht alles haben...
    Dann müsstest Du auch dort die Methode paint überschreiben und Dir z.B die Methode createBufferedImage schreiben,
    die Du dann in paint aufrufst..

    Quellcode

    1. private BufferedImage createBufferedImage(){
    2. BufferedImage bimg = (BufferedImage) createImage(b, h);
    3. // Erzeugen eines Graphics2D-Objectes!!!
    4. Graphics2D g_2d = bimg.createGraphics();
    5. // Graphics2D hat dann ne ganze Menge Methoden, um z.B.
    6. // Rechtecke, Kreise, Linien zu zeichen und auch Texte bzw. Bilder anzuzeigen.
    7. // Weitere Anweisungen!
    8. return bimg;
    9. }
    10. public void paint(Graphics g){
    11. if (bimg == null){
    12. createBufferedImage();
    13. }
    14. g.drawImage(bimg, 0, 0, this); }
    Alles anzeigen



    Leider ist die Seite von Sun auch nicht mehr was sie mal war, seit dem da Oracle mit mischt. :(