[Erledigt] JLabel in VerticalBox nicht richtig positioniert

Hallo.

Ich quäle mich derzeit mit Layouts rum und habe es über dieser Vertical- und HorizontalBoxen mehr oder weniger geschafft.
So füge ich zu meiner VerticalBox, genannt mainBox, ein JLabel hinzu, darunter ein JScrollPane mit JList.
Das JScrollPane ist nah am Rand des JDialogs, hat aber noch einen geringen Abstand. Das JLabel hat hingegen weit aus mehr Abstand zum Rand. Meine Vorstellung ist eher, dass der Bereich des Labels genau auf der Höhe des JScrollPanes beginnt.

Der wesentliche Code ist ansich:
mainBox.add(new JLabel("test"));

Das ist alles zum Label. Vorher wird nichts zur mainBox hinzugefügt und nachher lediglich das ScrollPane.

Was mache ich falsch? Meiner Meinung nach, müsste die Anordnung zweier Components, wie JLabel und JScrollPane, innerhalb des gleichen Layouts identisch sein oder? Bis auf dass ich dem JScrollPane eine PreferredSize gegeben habe, passiert auch damit nichts mehr.

Liebe Grüße
Morgyr

Sicher wunderst du dich, dass du noch keine Antwort auf deine Frage erhalten hast.
Das ist auch kaum verwunderlich. Es sind zu wenig Informationen. Und die, die du uns gegeben hast, sagen so wenig aus, dass man sich kein Bild von deinem Problem machen kann.

Also: Poste bitte mal ein Bild von deiner GUI, mach einen Pfeil oder Kreis zum Problem und verrate uns auch, welchen LayoutManager du benutzt.

Danke für den Hinweis.
Ich habe mal zwei Screenshots gemacht, die zwei verschiedene Dialoge zeigen.
Beide haben ein Label und folgend eine JScrollPane(JList)/JTextArea.
Dort ist schon gut sichtbar (auch durch die roten Rechtecke verdeutlicht), dass dort ein großer Unterschied zwischen den Positionierungen der Label ist.
Wobei ich mich auch bei dem zweiten Bild wundere, dass dort auch nicht exakt die gleiche Höhe bei Label und JTextArea gesetzt ist.

Nochmal ein bisschen mehr Code. Für jeden Dialog der entsprechende Teil, der Label und JScrollPane(JList)/JTextArea enthält:

Bild 1:
Initialisierung einer Box

{
    JList lFileList = new JList(dlm);
    lFileList.setBorder(LineBorder.createGrayLineBorder());
    JScrollPane spListScrollPane = new JScrollPane(lFileList, 
        		JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, 
        		JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    spListScrollPane.setPreferredSize(new Dimension(400, 50)); 
    mainBox.add(new JLabel("Verfügbare Karten:"));           
    mainBox.add(spListScrollPane);    
}```
Hinzufügen zu einer weiteren Box
```Box panelBox = Box.createVerticalBox();
{
    panelBox.add(mainBox);
    panelBox.add(buttonBox);
}```
Das ganze wird auf ein JPanel und anschließend auf ein Dialog gesetzt.
```panel.add(panelBox);
currentDialog.add(panel);```

Beim zweiten Bild ist das alles noch etwas kompakter, insgesamt wird dort folgendes benutzt.
```Box inputBox = Box.createVerticalBox();
{
    JTextArea taProfileCopy = new JTextArea();  
    taProfileCopy.setPreferredSize(new Dimension(350, 82));
    taProfileCopy.setBorder(LineBorder.createGrayLineBorder());
    	    
    inputBox.add(new JLabel("Profil-Kopie:"));
    nputBox.add(taProfileCopy);
}
    	
panel.add(inputBox);
currentDialog.add(panel);```

Also wird beim panel BorderLayout benutzt, was dann letztlich egal ist, da die Box auf Center platziert wird. 
Noch ein Bermerkung zu meinem Code: Ich weiß nicht, ob das mit den zusätzlichen geschweiften Klammern gebräuchlich ist, ich habe den Code so gestaltet, um die Box-Initialisierungen logisch zu trennen. Wenn das so in der Form eher abgelehnt wird..ich bin für bessere Vorschläge offen.

Liebe Grüße
Morgyr

PS: Ich merke grade, dass der zweite Screenshot nicht richtig funktioniert. Müsste gegebenenfalls wohl runtergeladen werden. Kann das mit der Größe der Datei zusammenhängen oder wie kommt das zu Stande? Der erste lässt sich ja ohne Probleme anzeigen.

Ich hab das BoxLayout noch nie benutzt. Ich hätte deine GUIs mit BorderLayout gelöst.

Was den zweiten Screenshot betrifft, kann ich nur vermuten, dass es Schwierigkeiten mit dem BMP-Format gibt. Am besten sind zum Posten immer noch PNG, GIF und JPG.

Hmm schade.
Aber ich habe mich nochmal an das BorderLayout herangetraut. Dieses hatte ich vor dem BoxLayout versucht, mein Fehler war nur, dass ich annahm, ein JPanel hätte als Standard-Layout das BorderLayout. Ich habe nun explizit dieses Layout gesetzt, noch ein bisschen mit FlowLayout, um Abstand zu schaffen, gearbeitet und alles sieht so aus, wie ich das möchte.

Danke L-ectron-X.

Liebe Grüße
Morgyr