Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo,
ich hab eine Oberfläche in der der Hintergrund in Form eines Icons eines JLabels angezeigt wird und, damit es darüber angezeigt wird, lasse ich ein zweites Bild drüberzeichnen.
Meine Frage:
Wie kann ich das gezeichnete Bild bewegen und wie bekomme ich es wieder weg?
Das soll ein Kartenspiel werden.
Der Hintergrund ist das grüne Spielfeld, das sich evtl. noch ändert. (Ich Verändere das Bild vielleicht noch etwas)
Auf dem Hintergrund werden die Karten beim Austeilen bewegt
und natürlich sollen nach jeder Runde die Karten verschwinden.
inwiefern würde das eines meiner probleme lösen?
dann habe ich nurnoch das spielfeld
ich könnte allerdings alles was gezeichnet wurde überzeichnen lassen mit dem Hintergrundbild
DAS würde mir sehr weiterhelfen
wie muss ich das anstellen?
(mit code bitte)
Vielen Dank
das bringt mich schon ein großes Stück weiter :toll:
Um die Karte zu bewegen muss ich sie also immer wieder neu zeichnen lassen, jeden frame?
In der Methode paintComponent wird nur das Hintergrundbild gemalt. ALLES andere übernimmt Swing automatisch. Ein Hintergrundbild weicht nämlich vom Normalen ab, dass da sonst ein grauer einfarbiger Hintergrund gemalt würde.
Zum Beispiel wird dein Label von Swing gemalt und zwar, wenn du da nicht eingreifst, richtig.
Der sogenannte Event-Dispatch-Thread (EDT) von Swing kümmert sich darum, GUI-Widgets neu zu malen, wenn sich Eigenschaften geändert haben. SOFERN du keinen Code hast, der den EDT blockiert zum Beispiel durch lange Laufzeiten in deinen Action-Handlern.
Was mich an dem Code verwirrt:
Wo ist definiert, an welchen Positionen die Labels und Buttons angezeigt werden?
Ich sehe Werte für die Fenstergröße und die Startposition des Fensters, aber mehr nicht ???:L
Sorry wenn ich mich etwas dumm anstelle:bahnhof:
DAS übernimmt üblichweise ein Layout-Manager automatisch. In Swing gibt es verschiedene davon, beispielsweise FlowLayout, BorderLayout oder GridBaglayout.
Jeder "berechnet" wieviel Platz ein Widget auf dem Schirm bekommen kann unter Berücksichtigung aller anderen Widgets. Beispielsweise wird ein JLabel weniger Platz bekommen, wenn ein weiteres Label in gleicher Zeile ebenfalls Platz beansprucht.
Es gibt aber auch den Null-Layoutmanager. Bei diesem MUSST du dich um die Positionierung selber kümmern. Dies betrachten die meisten aber sehr aufwendig und sollte daher nach Möglichkeit vermieden werden.