Aufteilung von JPanels in einem Frame

skappler

Aktives Mitglied
Hallo Leute
Ich arbeite gerade an der GUI für ein Spiel und habe Probleme, wie ich das ganze intern aufteile.
Die Oberfläche besteht aus einer HUD links und unten und einer Fläche für die Map.
So soll das ganze von der Aufteilung her aussehen: ImageShack® - Online Photo and Video Hosting
(Die Bilder sind nur Platzhalter und im Moment einfach auf ein Panel gemalt)

Ich hab mir das ganze so gedacht, dass ich die Map als ein JPanel realisiere und das HUD als ein oder zwei weitere. Mein Problem ist jetzt nur wie ich die Panels platziere. Ich hab wenig Erfahrung mit Layouts, daher weiß ich nicht, was sich da anbieten würde.
Vielleicht wäre es auch sinnvoller das Ganze komplett anders zu gestalten.

Könnt ihr mir Tipps geben wie ich das ganze so realisiere, dass ich bestmögliche Kontrolle über alles habe und auch alles an seinem Platz bleibt (vor allem für eventuellen Fullscreen Modus)?
 

Anhänge

  • screenshot20120830at163.jpg
    screenshot20120830at163.jpg
    79,9 KB · Aufrufe: 41

skappler

Aktives Mitglied
Okay vielen Dank. Das sieht soweit schonmal ganz gut aus. Das Problem ist jetzt nur, wie ich die Breite der Panels gestalte. Wenn ich einfach ein neues JPanel mache und sage setSize() und sie danach hinzufüge werden sie nur als schmale Streifen angezeigt. (Ich hab über die Paint methode jedes Panel theoretisch komplett mit Farbe gefüllt)
 

bERt0r

Top Contributor
Du gibst bei einer Komponente mit setPreferredSize an wie groß die Komponente sein will, damit sie groß genug ist alles anzuzeigen. Wenn du dann z.B pack() aufrufst, bekommt sie genau diese Größe. Beim Boder Layout werden eventuell Höhe/Breite einer Komponente angepasst um dem Border layout zu entsprechen.
 
V

vanny

Gast
du musst statt setSize(); die setPreferredSize(); benutzen, wenn du mit dem BorderLayout arbeitest.

Die Farbe des Panels kannst du einfach mit setBackground(Color); setzen, dafür braucht es keine paintComponent();
 
Zuletzt bearbeitet von einem Moderator:

skappler

Aktives Mitglied
Wer überlegt sich denn sowas -.-
Aber danke für den Tipp mit dem setBackground ;)

PS: Habs grad ausprobiert und es funktioniert nicht =(
 
Zuletzt bearbeitet:
V

vanny

Gast
Wer überlegt sich denn sowas...
...Habs grad ausprobiert und es funktioniert nicht =(

1. Wer überlegt sich was?
2. Was funktioniert nicht, die PrefferedSize oder der Background?

KSKB:
Java:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;

import javax.swing.*;

public class PanelAnordnung{
	
	public static void main(String[] args) {
		JFrame fr = new JFrame();
			fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		JPanel pnlSouth = new JPanel();
			pnlSouth.setBackground(Color.DARK_GRAY);
			pnlSouth.setPreferredSize(new Dimension(0, 200));// beim BorderLayout wird hier nur die Höhe berücksichtigt
		JPanel pnlWest = new JPanel();
			pnlWest.setBackground(Color.DARK_GRAY);
			pnlWest.setPreferredSize(new Dimension(200, 0));//Hier wird nur die Breite wirksam
		JPanel pnlCenter = new JPanel();
			pnlCenter.setBackground(Color.WHITE);
			pnlCenter.setPreferredSize(new Dimension(400, 300));
		
			fr.getContentPane().add(BorderLayout.SOUTH, pnlSouth);
			fr.getContentPane().add(BorderLayout.WEST, pnlWest);
			fr.getContentPane().add(BorderLayout.CENTER, pnlCenter);
			
		fr.pack();
		fr.setLocationRelativeTo(null);
		fr.setVisible(true);
	}

}
 
Zuletzt bearbeitet von einem Moderator:
V

vanny

Gast
:D Wenn er die paint Methode überschrieben hat hilft setBackground natürlich nix mehr. :toll:

Stimmt, da hab ich Ihn wahrscheinlich in die Irre geführt:oops:

[EDIT]Wobei JPanel im Zusammenhang mit paint()-überschreiben tut ja eh immer weh :autsch:[/EDIT]
 
Zuletzt bearbeitet von einem Moderator:

skappler

Aktives Mitglied
Ich meinte wer sich überlegt 4 verschiedene setSize methoden einzuführen :p

Und das setBackground hat nicht funktioniert, weil ich die paint Methode nicht komplett entfernt, sondern nur das fillRect raus geholt hab.
Wenn du sagst, dass paint überschreiben bei Panels eh immer weh tut, wie soll ich es dann machen? Per Double Buffering?
 
V

vanny

Gast
Kleiner aber feiner Unterschied ^^
Ich sagte nicht, dass das Überschreiben von paint(); beim Panel weh tut, sondern beim JPanel.
Panel ist AWT und JPanel SWING und bei Swingkomponenten wird nicht die paint() sondern die paintComponent() überschrieben.

Das mit dem setBackGround(); bringts natürlich nur wenn du einfach nur den Hintergrund eines normalen JPanels ändern willst, mein Fehler sry.

Naja ich hoffe mal dir wurde hier trozdem geholfen und nicht nur Verwirrung gestiftet:D

Gruß Vanny
 

skappler

Aktives Mitglied
Ich glaub ich bin an der Verwirrung schuld. Ich rede die ganze Zeit von JPanels :p
Soll ich dann einfach die paintComponent() überschreiben oder gibt es da andere / bessere Ideen?
 

Ebenius

Top Contributor
[c]paintComponent[/c] überschreiben genau richtig, wenn Du das Zeichnen einer Swing-Komponente selbst verändern willst.

Ebenius
 

Michael...

Top Contributor
Und wenn man in der paintComponent
Code:
super.paintComponent(g)
aufruft, wird der Hintergrund auch in der per setBackground(Color) gesetzten Farbe dargestellt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B JavaFX Pattern (Aufteilung Zuständigkeiten AWT, Swing, JavaFX & SWT 7
P Aufteilung eines Bildes in JLabel AWT, Swing, JavaFX & SWT 15
P GUI-aufteilung AWT, Swing, JavaFX & SWT 3
R AWT: Aufteilung mit Panels? AWT, Swing, JavaFX & SWT 2
M GridBagLayout Probleme bei JPanel Aufteilung AWT, Swing, JavaFX & SWT 3
D Welches Layout für prozentuale Aufteilung: 20% - 60 % - 20% AWT, Swing, JavaFX & SWT 3
G kann man die aufteilung von GridLayout beeinflussen ? AWT, Swing, JavaFX & SWT 10
Apfelbaum2005 Swing JFrame mehrere JPanels mit unterschiedlichen Formen hinzufügen AWT, Swing, JavaFX & SWT 1
B viele JPanels auf JLayeredPane -> to SVG? AWT, Swing, JavaFX & SWT 15
CptK JPanels übereinander legen AWT, Swing, JavaFX & SWT 6
CptK JPanels wechseln AWT, Swing, JavaFX & SWT 2
B Minimum x und y von Children-JPanels ermitteln AWT, Swing, JavaFX & SWT 3
L Swing JPanels werden nicht angezeigt! AWT, Swing, JavaFX & SWT 7
P Swing Mehrere JPanels auf ein JFrame hinzufügen? AWT, Swing, JavaFX & SWT 2
A Swing JPanels dynamisch untereinander einfügen AWT, Swing, JavaFX & SWT 3
J bestimmten Bereich eines JPanels drucken AWT, Swing, JavaFX & SWT 2
R Swing JPanels auf JFrame auf verfügbaren Platz aufblasen AWT, Swing, JavaFX & SWT 4
C LayoutManager Bei verkleinern des Fensters, verschieben sich JPanels übereinander. AWT, Swing, JavaFX & SWT 7
K Swing Inhalt eines JPanels lesen AWT, Swing, JavaFX & SWT 3
R Swing Bewegung eines Graphics Objektes innerhalb eines JPanels funktioniert nicht richtig AWT, Swing, JavaFX & SWT 2
W Swing Farbige JPanels auf JFrame werden nicht gezeigt. Was mach ich falsch? AWT, Swing, JavaFX & SWT 7
N Swing CardLayout: Problem beim Wechsel zwischen den JPanels AWT, Swing, JavaFX & SWT 3
F Swing JPanels übereinander ohne Mananger AWT, Swing, JavaFX & SWT 1
K Swing Klassenstruktur mit mehreren JPanels AWT, Swing, JavaFX & SWT 3
S Swing Navigation durch JPanels AWT, Swing, JavaFX & SWT 0
S Bei BoxLayout haben hinzugefügten Jpanels einen Versatz/Space AWT, Swing, JavaFX & SWT 0
B Größer-/Kleinerziehen eines JFrames/JPanels erkennen AWT, Swing, JavaFX & SWT 2
C Bei Btn Klick zwei JPanels switchen AWT, Swing, JavaFX & SWT 14
M Swing Aktualisieren eines JPanels nach Tasteneingabe AWT, Swing, JavaFX & SWT 2
S Liste von JPanels mit festen Höhen AWT, Swing, JavaFX & SWT 3
I Rechteck eines Graphics eines JPanels in einem anderen JPanel anzeigen AWT, Swing, JavaFX & SWT 7
S Swing Kopie eines JPanels inkl. aller objekte darin erstellen AWT, Swing, JavaFX & SWT 5
F Event Handling Kommunikation eines JButton ueber JPanels hinaus AWT, Swing, JavaFX & SWT 6
S Swing Drag&Drop mit TransferHandler und JPanels AWT, Swing, JavaFX & SWT 8
Jats Zeichen auf mehrere JPanels AWT, Swing, JavaFX & SWT 7
A Swing Aktualisieren eines JPanels AWT, Swing, JavaFX & SWT 13
N Abspeichern eines kompletten JPanels AWT, Swing, JavaFX & SWT 57
S Swing Zwischenräume zwischen JPanels AWT, Swing, JavaFX & SWT 4
H Verschiedene JPanels aus eigenen Klassen in JFrame einfügen, nur ein Panel sichtbar AWT, Swing, JavaFX & SWT 4
X zwischen 2 JPanels "elegant" wechseln AWT, Swing, JavaFX & SWT 3
S Swing MVC Ein JFrame, mehrere JPanels AWT, Swing, JavaFX & SWT 6
K JButtons innerhalb eines JPanels verschieben (DRAG&DROP) AWT, Swing, JavaFX & SWT 5
T jPanels im jFrame bewegen - Auch ohne Textfield? AWT, Swing, JavaFX & SWT 4
G ein JTextArea in zwei JPanels AWT, Swing, JavaFX & SWT 2
W Swing JFrame mit unterschiedlichen JPanels AWT, Swing, JavaFX & SWT 2
D Grafik über JPanels hinweg verschieben AWT, Swing, JavaFX & SWT 2
C klassenübergreifende JPanels auf ein JFrame AWT, Swing, JavaFX & SWT 22
X Alle Components eines JPanels Enablen AWT, Swing, JavaFX & SWT 7
D Swing Problem mit Gridbaglayout bzw. Größenanpassung JPanels AWT, Swing, JavaFX & SWT 7
P Swing Größe eines JPanels bestimmen (ohne Border!) AWT, Swing, JavaFX & SWT 2
0 Ausschnitt eines JPanels als Bild speichern AWT, Swing, JavaFX & SWT 4
N Richtiges einstellen der size von JPanels AWT, Swing, JavaFX & SWT 10
D LayoutManager JPanels ohne LayoutManager platzieren AWT, Swing, JavaFX & SWT 6
Weltall 7 Swing JPanels werden doppelt gezeichnet AWT, Swing, JavaFX & SWT 6
C Swing JList mit JPanels AWT, Swing, JavaFX & SWT 6
J Swing JPanels werden ständig gezeichnet AWT, Swing, JavaFX & SWT 11
C Swing Inhalt eines JPanels ermitteln & bearbeiten AWT, Swing, JavaFX & SWT 5
G Swing Komponenten dem Hintergrundbild des JPanels anpassen? AWT, Swing, JavaFX & SWT 6
N Swing GUI updaten / Aufklappbare Jpanels AWT, Swing, JavaFX & SWT 2
E Swing JPanels durch ziehen am Rand vergrößern/verkleinern?! AWT, Swing, JavaFX & SWT 2
buntuswalus Swing Datentransfer zwischen JPanels AWT, Swing, JavaFX & SWT 18
T Sichtbarmachen von Objekten auf mehreren JPanels AWT, Swing, JavaFX & SWT 2
J Swing Container innerhalb eines JPanels erfragen AWT, Swing, JavaFX & SWT 3
H Z-Order von JPanels in JFrames AWT, Swing, JavaFX & SWT 2
B Swing JFormattedTextField auf mehreren JPanels in einer JTabbedPane AWT, Swing, JavaFX & SWT 3
R Verschachtelte JPanels FocusTraversalPolicy AWT, Swing, JavaFX & SWT 6
L mehere JPanels auf JFrame - setVisible() funktioniert nicht AWT, Swing, JavaFX & SWT 3
J Swing JScrollPane fasst JPanel und Groesse des JPanels soll sich aendern AWT, Swing, JavaFX & SWT 2
H Größen von JPanels,JLable und JTextfield.. AWT, Swing, JavaFX & SWT 12
H Layoutprobleme mit Jpanels AWT, Swing, JavaFX & SWT 2
S Swing Dynamische JPanels: Vertikales Strecken verhindern AWT, Swing, JavaFX & SWT 4
Pithecanthropus Swing JPanels dynamisch austauschen AWT, Swing, JavaFX & SWT 8
J SWING Fenster mit mehreren JPanels (dank JLayeredPane) AWT, Swing, JavaFX & SWT 19
R Swing JPanel enthält mehrere JPanels - Positionsvergabe AWT, Swing, JavaFX & SWT 4
P verschiedene JPanels einblenden je nach auswahl AWT, Swing, JavaFX & SWT 2
R MousePosition über mehrere JPanels darstellen AWT, Swing, JavaFX & SWT 13
A Mehrere JPanels in ein JFrame AWT, Swing, JavaFX & SWT 4
R JFrame enthält JScrollPane mit JPanels AWT, Swing, JavaFX & SWT 3
R Mehrere JPanels in JScrollPane AWT, Swing, JavaFX & SWT 3
R JScrollPane, mehrere JPanels hinzufügen AWT, Swing, JavaFX & SWT 2
R Hinzufügen mehrer JPanels zu einem JFrame AWT, Swing, JavaFX & SWT 2
D Event beim Laden eines JPanels? AWT, Swing, JavaFX & SWT 3
A Problem beim Setzen von JPanels AWT, Swing, JavaFX & SWT 4
M Automatische Anpassung eines JPanels in einem JFrame AWT, Swing, JavaFX & SWT 6
M Anpassen der Größe eines JPanels (incl. gezeichneter Ampel) AWT, Swing, JavaFX & SWT 2
G Hilfe Meine JPanels verschwinden im Müll AWT, Swing, JavaFX & SWT 10
G Hintergrundfarbe eines JPanels zurücksetzen AWT, Swing, JavaFX & SWT 12
G Alle Komponenten eines JPanels durchlaufen AWT, Swing, JavaFX & SWT 11
G MVC Modell mit JPanels? AWT, Swing, JavaFX & SWT 1
P Problem bei Aktualisierung eines JPanels AWT, Swing, JavaFX & SWT 2
G mehrere JPanels untereinander ? AWT, Swing, JavaFX & SWT 2
M Wirkliche Größe eines JPanels/o.ä. ermitteln AWT, Swing, JavaFX & SWT 3
T Bisherige JFrames in JPanels oder JInternalFrames? AWT, Swing, JavaFX & SWT 2
M Minimieren von verschachtelten JPanels AWT, Swing, JavaFX & SWT 2
M Problem, an ImageIcon in JPanels zu kommen. AWT, Swing, JavaFX & SWT 2
G Größe eines JPanels beeinflussen AWT, Swing, JavaFX & SWT 5
S Update des fensters beim Ersetzen von JPanels AWT, Swing, JavaFX & SWT 9
S Automatisches Rendern einen JPanels AWT, Swing, JavaFX & SWT 8
S Frage: Mehrere JPanels gleichen Button zuzweisen? AWT, Swing, JavaFX & SWT 10
D JTree mit JPanels als UserObjects AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben