# Sitzplan: Anfangsprobleme



## ingobar (28. Jan 2009)

Hallo zusammen,

ich muss immer wieder für meine Fortbildungen Sitzpläne erstellen. Dabei möchte ich Bilder, Namen und Kommentare von anzeigen und en bloc verschieben können. Ich hatte mal so was als JavaScript/php geschrieben, möchte das Ganze nun aber in Java umsetzen. Ich habe zwar schon in Java programmiert (fortgeschrittener Anfänger), aber weiß überhaupt nicht, wie ich manche Dinge umsetzen soll. Vielleicht könnt ihr mit Tipps/Tutorials/ähnlichen Beispiel-Code empfehlen:

1.) Ich wollte jeden "Schüler" als eigene Klasse umsetzen mit Bild, Name etc. dazu gibt es dann einen entsprechende Dialog. Aber wie mache ich das mit dem Bild? Ich weiß zwar wie ich die Datei mit JFileChooser lesen kann, aber wie speicher ich die? Bei php wird sie einfach auf den Server gespeichert und hier? Gespeichert hatte ich Daten bislang über Serializable oder erzeugen eines Files mit den Daten.

2.) Wie zeige ich die Daten dann wieder an (Bilder mit Daten).

3.) Wie kann ich die Bilder mit der Maus anordnen?

Ich weiß, eine Menge Fragen, aber vielleicht könnt und wollt ihr mir ja helfen,

ingobar


----------



## hdi (28. Jan 2009)

1) Bilder musst du manuell abspeichern, also wenn die erst zur Laufzeit feststehen, dann musst du sie nach dem Öffnen irgendwo abspeichern. Wenn sie nicht zur Laufzeit geladen werden sondern "fix" sind packst du sie einfach mit in dein Projekt.

2) Was meinst du mit Daten anzeigen? zB Person.getName()? Versteh ich nicht..
Bilder kannst du per setIcon() auf Buttons o.ä. packen, oder wenn die einzelnen Sitz-Blöcke Panels sind
kannst du das Bild einfach reinzeichnen, siehe Klasse "Graphics"

3) Also das Verschieben von SitzPlätzen hat ja nix mit Bildern zu tun. Mach dir ein JPanel, dort ein Raster
wo du deine ganzen Sitz-Plätze draufhaust (diese sind zB auch Panels oder buttons), und gib ihm nen
MouseListener. -> mouseDragged(). 
(Vllt ist das sogar MouseMotionListener)


----------



## Guest (28. Jan 2009)

zu 1) und 2)
Die Bilder sind nicht fix. Unter php habe ich das so gemacht, dass ich die Teilnehmerliste als csv-Datei hatte und die Teilnehmerfotos auch alphabetisch gemacht habe. Das "Programm" hat dann automatisch Bilder und Text kombiniert. So wollte ich es dann auch machen. D.h. ich habe einen Dialog in dem ich den Bilderordner auswählen kann (das geht z.B. mit JavaScript gar nicht, daher u.a. der Wechsel zu Java) und die Textdatei.

Das "Programm" hat dann jeden Namen mit Bild als eigenen <div> angelegt. Das <div> konnte ich dann durch die Gegend schieben. Die aktuelle Position des <div>s wurde in einer Text-datei gespeichert.

Gibt es irgendwie die Möglichkeit so ein Bild als Attribut-Wert in einer Klasse direkt zu speichern? Irgendwie so:


```
Image TeilnehmerBild = null;
File file = new File("image.gif");
TeilnehmerBild = ImageIO.read(file);
```

Wobei "image.gif" beim Ordnerdurchlauf erzeugt wird.

zu 3)
Wenn ich es richtig verstanden habe, kann ich in einem JPanel alles mögliche anzeigen? Also Bilder, Text, Buttons etc. Und dann diesem JPanel einen MouseMotionListener zuordnen, wodurch das JPanel (mit ein bisschen Zusatzprogrammierung) beweglich wird ?


Zusatzfrage:

Ich wollte das Ganze als OneWindow-Application machen. Also ohne Menüs etc. Stattdessen wollte ich Reiter benutzen, wie es amazon früher hatte. Geht sowas überhaupt in Java?

Ich wollte zwei Reiterkarten machen: Eine für den Sitzplan und einen für mein Unterrichtsmaterial und damit nicht ständig Fenster auf und zu gehen und auch nicht nebeneinanderliegen (das Ganze wollte ich für die Bildschirmgröße eines Netbooks optimieren, also ca. 10Zoll).

Nochmals danke für die schon mal hilfreichen Tipps,

ingobar


----------



## Guest (28. Jan 2009)

zu 3)

JTabbedPaen

zu 4)


```
public class Schueler{

  private String fotoUrl ="";

    .........

}
```
und die csv -Datei kannste ja dann auch so haben
"Name;Vorname;FotoUrl;...
[/quote]


----------



## Gast (28. Jan 2009)

Quatsch 
zu 3) ist natürlich zu zusatzfrage
und zu 4) ist zu 1) und 2)


----------



## Ebenius (28. Jan 2009)

:lol: Gestern war heute morgen... :lol:


----------

