Swing JPanel enthält mehrere JPanels - Positionsvergabe

Status
Nicht offen für weitere Antworten.

redbomber

Bekanntes Mitglied
HI zusammen:

Ich habe mal wieder ein Problem:


Also ich besitze ein JPanel (PANEL). Dieses JPanel kann in der Breite wachsen, falls das umgebende Fenster von der Größe verändert wird.

In diesem JPanel befinden sich 3 JPanels -> A,B und C, diese sollen auch in dieser Reihenfolge horizontal in einer Reihe angeordnet sein.
A,B und C besitzen dieselbe HEIGHT wie das PANEL.
A und B sind von der Breite her konstant wohingegen C von der Breite her mitwächst.

Tja nun mein Problem mit dem hinzufügen der JPanels, A,B und C.
Auf setLocation() reagiert das PANEL nicht. ebenso wenn ich FlowLayout wähle klappt das nicht.

Habt ihr mir vielleicht einen Tip woran das liegen kann bzw. wie ich mein Problem lösen kann?
 
setLocation() geht mit null-Layout nicht? Beispiel-Code

ein schönes Layout wär natürlich ganz was anderes,
FlowLayout wird dir nicht unbedingt helfen,
GridBagLayout kennt sich mit konstanten Größen + Rest auffüllen schon eher aus,
falls zufällig C genau zwischen A und B liegt, geht BorderLayout

bzw. ein BorderLayout nur für C und ein ZwischenPanel, welches A + B enthält
 
Also hier mein Code
Code:
public MyJPanel(int width, int height, int posY){
		
		infopanel = new Infopanel(...);
		trackpanel = new Trackpanel(...);
		
		int width = trackpanelManager.getWidth();
		this.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
		add(infopanel);
		add(trackpanel);
		
		this.setSize(width, height);
		this.setBounds(0, posY, width, height);
		
		infopanel.setLocation(0,0); // soll ganz links sein
		trackpanel.setLocation(infopanel.getWidth(),0); // soll horizontal daneben sein
		
		this.setVisible(true);		
	}

Tja und alles was passiert ist, dass die Panels untereinander hinzugefüht werden...
Ich will sie aber einfach nur von links nach rechts horizontal hinzufügen.
 
ich sehe nirgendwo
setLayout(null);
(auch wenn es nicht zu empfehlen ist)

mit gesetzen Layout sind setLocation()-Aufrufe chancenlos, das ist ja nicht verwunderlich


setVisible(true);
auf ein JPanel ist merkwürdig

setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
bei absoluter Positionierung seltsam
 
ohje, du kannst dir nicht vorstellen wie lang ich daran heute schon rumgemacht habe...
jetzt gehts! Vielen vielen dank!

Also lags einfach nur an:
setLayout(null);
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben