OpenMap und Swing in JApplet

floman

Mitglied
Hallo,

ich möchte ein JApplet mit Swing-Komponenten und einer Map befüllen. Nun bin ich mir aber bei der Reihenfolge in der ich das mache nicht sicher. Zur Zeit mach ich das so:
init()
1. erstelle MapPanel
2. hol mir daraus den MapHandler, den ich für die Maussteuerung brauche
3. hol mir daraus die MapBean, also die Karte, und setz die Eigenschaften
4. erstelle ein JPanel und weiter Elemente wie JButtons...
5. setze die Größe und Ausrichtung des Buttons (setSize(), setBounds())
6. füge den Button zum Panel hinzu
7. füge die MapBean zum Panel hinzu
8. füge Panel zu JApplet hinzu

Schritt 5 wird einfach ignoriert.
Es werden dann zwar alle Elemente angezeigt, aber halt irgendwie default.

Ein weiteres Problem ist das Zeichnen. Ich würde gerne in der Map, und zwar nur in der Map, während der Ausführung des Applets Marker (Kreise, Rechtecke, per Mausklick) sezten und wieder löschen können -löschen nachdem ein Neuer gesetzt wurde. Das mit dem Setzten funktioniert zwar aber halt oft mit einer gewissen Verzögerung. Beim Löschen hab ich keine Ahnung wie ich das angehen soll. Zeichen tu ich ganz normal per paint(). Hab bemerkt das bei openmap auch was zum zeichen dabei ist, jedoch weiß ich nicht ob ich es unbedingt brauch.
 
Du kannst die Objekte, die du zeichnen willst in einer Liste sammeln und beim Zeichnen darüber laufen/iterieren.
Wenn du Objekte aus der Liste entfernst, werden diese dann auch nicht mehr gezeichnet.
 
Sowas in der Art hab ich mir schon gedacht. Das mit dem Zusammenfügen gilt ja nur für gleiche Typen. Was mach ich mit dem Rest? Zur Zeit zeichne ich einfach alles neu + immer einen neuen Punkt.
 
Ja sry, bin ein bischen mit den ganzen Swing-Komponenten durcheinander gekommen. Ich habs fürs erste so gelöst dass ich die Kontrollelemente und die Map jeweils in ein JPanel und die dann in einen Container gelegt habe.
Hab jetzt mal eine ganz konkrete Frage. Gibt es eine Möglichkeit den Wert eines JSliders zu fixieren? Also ich will nicht das man per Maus den Wert ändern kann.
 
Danke, genau das hab ich gesucht.

Kann es sein das man die Größe von Elementen wie Buttons wenn sie in ein Panel eingefügt werden nicht verändern kann? Ich mach das natürlich vor dem Einfügen.

Ich weiß das diese wahrscheinlich simplen Fragen nerven, aber ich komm nicht richtig weiter. Das GUI soll nur ein paar Elemente enthalten, aber die möcht ich wenigstens sinnvoll anordnen.
 
Kann es sein das man die Größe von Elementen wie Buttons wenn sie in ein Panel eingefügt werden nicht verändern kann? Ich mach das natürlich vor dem Einfügen.
Doch kann man. Es kommt aber auf den LayoutManager an. Einige ignorieren Angaben von Dimensionen für Komponenten. Wichtig ist auch, dass fast alle LayoutManager sich meist nur nach der gesetzten PreferredSize der Komponenten richten.
Das Thema LayoutManager ist nicht ganz so trivial. Genaue Kenntnisse, mindestend über die Standard-LayoutManager, sind für die Erzeugung von brauchbaren GUIs nötig.

Ich weiß das diese wahrscheinlich simplen Fragen nerven, aber ich komm nicht richtig weiter.
Nein, nervt mich nicht. Aber wenn du etwas erreichen willst, darfst du hier nicht um den heißen Brei herum reden. Je genauer deine Aussagen, um so genauer, zielgerichteter und hilfreicher werden dann die Antworten aus dem Forum sein.
 
Ok, ich bin jetzt nach langen hin und her zum Schluss gekommen dass ich ohne Layoutmanager besser dran bin.

Kennst du dich zufällig mit OpenMap aus?
 

Zurück
Oben