"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

Best practice gesucht: Java Swing + Zeichnen...

semteX 19.02.2008 - 14:58 961 7
Posts

semteX

begehrt die rostschaufel
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14592
da ich jetzt schon seit 3.5 stunden mich mit Swing spiel und irgendwie ständig das gefühl hab, dass die lösung, die ich hab, absolut ned die sein kann, die jeder andere auch gehabt hätte...

also mal ne fragen an die leute, die sich öfters damit spielen:

Aufgabenstellung: ich brauch im prinzip ne Seite, auf welcher in der oberen hälfte ein 500 x 500 Feld ist, in dem herumgezeichnet werden kann. der Inhalt, welcher da reingebastelt werden soll, ist in einem BufferedImage gespeichert.

in der unteren Hälfte müssn 4 input felder + die dazugehörigen Labels hin.

anschließend fehlt noch ein "go" button.

diese lustige skizze sollt das verdeutlichen:

click to enlarge

Meine Frage is jetzt: Welchen LayoutManager würdet ihr verwenden (ich hatte schon TableLayout in einem TableLayout, dachte mir dann aber "oh **** that..."... und wichtiger: wie würdet ihr das mit dem BufferedImage lösen?

Im c# wär mein ansatz ja folgender: für das Bild einfach eine Bitmap hinknallen, auf der kann ma eh herummanipuliern wie man lustig ist, dann paar hilfslinien rein, labels und input felder setzen, das OnClickEvent vom Go registriern und fertig... nur mit dem ansatz sterb ich irgendwie in java tausend tode, und so wirklich gui entwickelt hab ich damit noch nie..

Vielen Dank,
semteX
Bearbeitet von semteX am 20.02.2008, 18:28

DKCH

...
Registered: Aug 2002
Location: #
Posts: 3279
was willst jetzt, ein bufferedimage darstellen oder direkt auf einem canvas herumzeichnen?

edit: i bin ja ned so:

Code:
        BufferedImage image = ...
        Icon icon = new ImageIcon(image);
        JLabel label = new JLabel(icon);
 
        JPanel p = new JPanel();
        p.getContentPane().add(label);
        ...

semteX

begehrt die rostschaufel
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14592
ein buffered image darstellen.

/edit: im buffered image kann i ja dann eh herumzeichnen, wenn ich mir bi.createGraphics() das graphics hol, oder bin ich da am falschn dampfer?

prayerslayer

Oar. Mh.
Avatar
Registered: Sep 2004
Location: vorm Sucher
Posts: 4073
@layout: nimm ein borderlayout und hau das image in den norden und den go-button in den süden. ins center kommt ein panel mit gridlayout (2 cols, 4 rows), in dem die 4 dingsels drin sind.

wird imho das gescheiteste sein.

semteX

begehrt die rostschaufel
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14592
danke, werd mich daran machn, wenn ich wieder auf bin

semteX

begehrt die rostschaufel
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14592
mein dank an die helfer, des trum geht ;)

prayerslayer

Oar. Mh.
Avatar
Registered: Sep 2004
Location: vorm Sucher
Posts: 4073
hat's mit dem bufferedimage so funktioniert, wie du es dir vorgestellt hast?

semteX

begehrt die rostschaufel
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14592
ja perfekt. ma muss ned mal mehr irgendwas neu zeichnen lassn, wenn ma das bufferedimage verändert, funktioniert sofort on the fly.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz