Hey Leute,
ich programmiere derzeit an einem Spiel, welches ich in diesem Semester im Rahmen eines Uniprojekts mache. Die GUI läuft in einem JFrame, wobei meine selbst geschriebene GUI-Klasse den JFrame extendet. Derzeit wird noch alles ausnahmslos über die drawRect- und drawString-Methode gezeichnet (Grafiken kommen evtl. später). Ich zeichne dabei, im ein Flimmern auf dem Bildschirm zu vermeiden, erst alles auf ein BufferedImage, welches ich dann auf ein JPanel auf dem JFrame zeichne. Dabei bin ich auf folgendes Problem gestoßen:
Wenn ich den JFrame verkleinere, arbeitet meine resize-Methode ohne Probleme und die Spielansicht wird entsprechend der JFramegröße passend kleiner hineingezeichnet (ich mache das über ein AffineTransform-Objekt und ne Menge Rumgerechne...)
Ziehe ich den JFrame jedoch größer, als er anfangs war, wird zwar alles passend skaliert, jedoch wird die Spielansicht nur bis dahin gezeichnet, wo die Grenzen des Frames bei Programmstart waren, der Rest des JFrames bleibt weiß.
Ich passe bei jedem Resize die Größe des JPanels an und erstelle ein neues BufferedImage, welches die Größe des JPanels erhält. Mir ist wirklich schleierhaft, wieso nicht auf dem kompletten Fenster gezeichnet wird...
Ich hoffe, ich habe alles verständlich beschrieben, ansonsten lege ich dahingehend natürlich gerne noch nach
besten Gruß,
w!ckeD
ich programmiere derzeit an einem Spiel, welches ich in diesem Semester im Rahmen eines Uniprojekts mache. Die GUI läuft in einem JFrame, wobei meine selbst geschriebene GUI-Klasse den JFrame extendet. Derzeit wird noch alles ausnahmslos über die drawRect- und drawString-Methode gezeichnet (Grafiken kommen evtl. später). Ich zeichne dabei, im ein Flimmern auf dem Bildschirm zu vermeiden, erst alles auf ein BufferedImage, welches ich dann auf ein JPanel auf dem JFrame zeichne. Dabei bin ich auf folgendes Problem gestoßen:
Wenn ich den JFrame verkleinere, arbeitet meine resize-Methode ohne Probleme und die Spielansicht wird entsprechend der JFramegröße passend kleiner hineingezeichnet (ich mache das über ein AffineTransform-Objekt und ne Menge Rumgerechne...)
Ziehe ich den JFrame jedoch größer, als er anfangs war, wird zwar alles passend skaliert, jedoch wird die Spielansicht nur bis dahin gezeichnet, wo die Grenzen des Frames bei Programmstart waren, der Rest des JFrames bleibt weiß.
Ich passe bei jedem Resize die Größe des JPanels an und erstelle ein neues BufferedImage, welches die Größe des JPanels erhält. Mir ist wirklich schleierhaft, wieso nicht auf dem kompletten Fenster gezeichnet wird...
Ich hoffe, ich habe alles verständlich beschrieben, ansonsten lege ich dahingehend natürlich gerne noch nach
besten Gruß,
w!ckeD