Swing Box Label ausrichten

aurikeL_Max

Mitglied
Hallihallo,

ich beschäftige mich gerade mit dem GUI von einem kleinen Projekt und stehe nun vor einem Problem, wobei mein GUI etwa wie folgt aufgebaut ist:
Code:
| _ _ _ _ _ _ _ _ _ _  |
|        . Uhrzeit     |
|        .  Bild       |
|        .  Bild       |
|        .  Text       |
|Label1  .  Label3     |
|Label2  .  Label4     |
| _ _ _ _ _ _ _ _ _ _  |
Die Fläche ist von einer horizontalen Box umgeben, in der sich eine vertikale Box (links - mit "Label1" & "Label2") sowie ein Panel mit einem GridLayout (mit 4 ähnlichen vertikalen Boxen (eine ist davon im Bild dargestellt)) befindet. Mein Problem ist nun, dass ich gerne die (absolute) Höhe von Label3 sowie Label4 ermitteln möchte (diese befinden sich in einer der vertikalen Boxen, die von dem GridLayout umgeben ist), damit ich Label1 sowie Label2 entsprechend ausrichten kann.
Da sich Label1 sowie Label2 ja in der vertikalen Box befinden, kann ich ja über bzw. unter die beiden Labels einen verticalStrut setzen - allerdings müsste ich hierfür die entsprechenden Höhen wissen.
Label3.getY() liefert mir (ich denke aufgrund der Box) 0 zurück, so dass ich mir nicht sicher bin, wie ich an die Y-Position komme.

Liebe Grüße
 

Ariol

Top Contributor
Sowas?
Java:
	public static void main(String[] args)
	{
		JPanel panel1 = new JPanel();
		
		JPanel panel12 = new JPanel();
		JLabel label1 = new JLabel("label1");
		JLabel label2 = new JLabel("label2");
		panel12.setLayout(new GridLayout(0,1));
		panel12.add(label1);
		panel12.add(label2);
		
		JPanel panel13 = new JPanel();
		JLabel uhrzeit = new JLabel("uhrzeit");
		JLabel bild1 = new JLabel("bild1");
		JLabel bild2 = new JLabel("bild2");
		JLabel text = new JLabel("text");
		JLabel label3 = new JLabel("label3");
		JLabel label4 = new JLabel("label4");
		panel13.setLayout(new GridLayout(0,1));
		panel13.add(uhrzeit);
		panel13.add(bild1);
		panel13.add(bild2);
		panel13.add(text);
		panel13.add(label3);
		panel13.add(label4);
		
		panel1.setLayout(new GridBagLayout());
		GridBagConstraints c = new GridBagConstraints();
		c.weightx=1;
		
		c.anchor=GridBagConstraints.PAGE_END;
		panel1.add(panel12,c);
		c.anchor=GridBagConstraints.PAGE_START;
		panel1.add(panel13,c);
		
		
		JFrame f = new JFrame();
		f.add(panel1);
		f.pack();
		f.setPreferredSize(new Dimension(300,300));
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.setVisible(true);
		
		
	}
 

aurikeL_Max

Mitglied
Hallo Java-Welt :applaus:
dein Beispiel meint genau das, was ich suche - allerdings hab ich nun versucht, lediglich ein GridBagLayout und gar kein GridLayout mehr zu verwenden (da ich gelesen hatte, dass hier alle Felder die gleiche Breite / Höhe haben, was zwar bei der Breite stimmt, bei der Höhe jedoch nicht (dann hätten die Felder der Lables ja auch die Höhe des Bildes)).

Mein bisheriger Ansatz:
Java:
		setLayout(new GridBagLayout()); // main Layout
		GridBagConstraints c = new GridBagConstraints();

		lblDate = new JLabel();
		c.fill = GridBagConstraints.HORIZONTAL;
		c.anchor = GridBagConstraints.LINE_START;
		c.gridwidth = 5;  
		c.gridx = 0;
		c.gridy = 0;
		add(lblDate, c);
		c.gridwidth = 1;

		c.gridy = 3;
		JLabel lblDescr = new JLabel("Label 1");
		add(lblDescr, c);

		c.gridy = 4;
		JLabel lblProb = new JLabel("Label 2");
		add(lblProb, c);

		c.anchor = GridBagConstraints.CENTER;
		c.fill = GridBagConstraints.VERTICAL;
		for (int i = 0; i < 4; i++) {
			c.gridx = i + 1;
			timeLabelArray[i] = new JLabel("Uhrzeit");
			c.gridy = 1;
			add(timeLabelArray[i], c);

			c.gridy = 2;
			pictureLabelArray[i] = new JLabel();
			add(pictureLabelArray[i], c);

			c.gridy = 3;
			descrLabelArray[i] = new JLabel("Label 3");
			add(descrLabelArray[i], c);

			c.gridy = 4;
			rainProbLabelArray[i] = new JLabel("Label 4");
			add(rainProbLabelArray[i], c);
		}

Mein Problem ist nun allerdings, dass die Labels im descrLabelArray (Label 3 aus dem Beispiel) einen unterschiedlichen Text haben können, wodurch unterschiedliche Breiten entstehen (ich hab mal einen Screenshot hochgeladen, der das Problem hoffentlich verdeutlicht).
Den obigen Quellcode rufe ich im Konstruktor einer Klasse auf und erst danach befülle ich die verschiedenen Labels etc. mit Werten (über eine zusätzliche Methode). Müsste ich nach dem Befüllen mit Werten ansetzen und die höchste Breite einer Spalte ermitteln und die Breite dann für die anderen Spalten setzen oder gibt es möglicherweise einen viel einfacheren Weg (können die Spalten auch einen fixen width-Wert haben)?

Liebe Grüße.
 

Anhänge

  • Capture.PNG
    Capture.PNG
    5,4 KB · Aufrufe: 27
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
G JavaFX CSS: Label in GridPane rechts ausrichten AWT, Swing, JavaFX & SWT 9
V SWT: Label vertikal ausrichten AWT, Swing, JavaFX & SWT 11
H JavaFX Label.Text mit bind an DoubleProperty binden AWT, Swing, JavaFX & SWT 3
izoards Ausdruck auf Label Drucker AWT, Swing, JavaFX & SWT 1
N JavaFX Unicode zeichnen in javafx Label verwenden AWT, Swing, JavaFX & SWT 2
H RPG Programmieren, label.setLocation funktioniert nicht AWT, Swing, JavaFX & SWT 7
Jose05 Javafx Label Höhe=Breite AWT, Swing, JavaFX & SWT 1
N javafx Position der Bustaben finden label AWT, Swing, JavaFX & SWT 1
N Label Schriftart Ändern javafx AWT, Swing, JavaFX & SWT 2
D JavaFX Label flackert beim aktualisieren AWT, Swing, JavaFX & SWT 12
J JavaFX Label aktualisieren AWT, Swing, JavaFX & SWT 18
M JavaFX javaFX Label-Text wird nicht gesetzt AWT, Swing, JavaFX & SWT 3
T Anderen Java Code durch Code kompilieren und Fehler in Label ausgeben AWT, Swing, JavaFX & SWT 5
I BoxLayout zentriert Label nicht AWT, Swing, JavaFX & SWT 7
B Ausgaben einer Umrechnung vom Textfeld in ein Label AWT, Swing, JavaFX & SWT 2
R JavaFX Label oder Imageview anzeigen mit Buttonklick AWT, Swing, JavaFX & SWT 4
L Label im JavaFX Thread Updaten AWT, Swing, JavaFX & SWT 3
A Inhalt wechseln bei Klick auf Label AWT, Swing, JavaFX & SWT 8
ralfb1105 JavaFX Label lässt sich innerhalb service Task nicht updaten? AWT, Swing, JavaFX & SWT 22
Trèfle JavaFX Formattierung im Label AWT, Swing, JavaFX & SWT 3
ralfb1105 JavaFX Wie Text Label in neuem Window von Main Stage setzen? AWT, Swing, JavaFX & SWT 6
F Countdown in Label anzeigen AWT, Swing, JavaFX & SWT 14
H JavaFX - Label aktualisieren AWT, Swing, JavaFX & SWT 1
J Dateiname im Label einblenden AWT, Swing, JavaFX & SWT 4
C SWT autosize bei gc.drawString() auf einem Label AWT, Swing, JavaFX & SWT 7
xYurisha Aus einer Gui Buttons, Label und ProgessBars entfernen AWT, Swing, JavaFX & SWT 4
T Label wird nicht angezeigt AWT, Swing, JavaFX & SWT 4
zhermann FX Label text wird nicht richtig angezeigt AWT, Swing, JavaFX & SWT 12
zhermann NullPointerException bei Label.setText() AWT, Swing, JavaFX & SWT 5
T JavaFX Label mit mehreren Images AWT, Swing, JavaFX & SWT 11
Kanda Sorata Inhalt einer .txt Datei einlesen und in ein Label einfügen (JavaFX) AWT, Swing, JavaFX & SWT 2
L JavaFX ContextMenu bei Label mit Linksklick AWT, Swing, JavaFX & SWT 4
J JavaFX - Felder (Label) in einer ForSchleife bearbeiten AWT, Swing, JavaFX & SWT 4
N Anordnung der Label AWT, Swing, JavaFX & SWT 3
N Swing Label auf Panel legen.. AWT, Swing, JavaFX & SWT 2
D JavaFX Label lässt sich nicht mehrmals färben AWT, Swing, JavaFX & SWT 7
R Swing JLabel berührung an einem anderen Label prüfen AWT, Swing, JavaFX & SWT 3
U Java FX Zusätzliches Label per Knopfdruck während der Laufzeit auf Panel einfügen. AWT, Swing, JavaFX & SWT 2
M Text in einem Label fett setzen AWT, Swing, JavaFX & SWT 4
D Swing JFreeChart Crosshair Label - setPreferredSize oder ähnliches, aber wo ? AWT, Swing, JavaFX & SWT 1
T CSS Rechtsbüdniges Label mit Zwei Zeilen AWT, Swing, JavaFX & SWT 7
J JavaFX Translation Text/Label AWT, Swing, JavaFX & SWT 2
Tom299 JavaFX Text oder Label benutzen AWT, Swing, JavaFX & SWT 4
C Textfeld und Label werden nicht angezeigt (Ubuntu) AWT, Swing, JavaFX & SWT 2
C SWT Treeview mit Bilder im Label verändert Expanded Icon AWT, Swing, JavaFX & SWT 1
Augenblau JavaFX Wechselnde Werte in Label darstellen AWT, Swing, JavaFX & SWT 7
V Swing Brauche Hilfe mit Label AWT, Swing, JavaFX & SWT 3
S JButton-Label vergrößern AWT, Swing, JavaFX & SWT 2
D Java Swing, Label lässt sich nicht mit Checkboxen/Knopf verändern AWT, Swing, JavaFX & SWT 2
M label mit icon verschieben. AWT, Swing, JavaFX & SWT 1
B Swing JXMapKit Mausemove in Label anzeigen AWT, Swing, JavaFX & SWT 0
K Bild in Label wird nicht angezeigt AWT, Swing, JavaFX & SWT 5
S JButton u. Label auf paint-Methode AWT, Swing, JavaFX & SWT 1
G Label wird nicht erstellt AWT, Swing, JavaFX & SWT 0
7 AWT problem: KeyListener/ test im Label umändern AWT, Swing, JavaFX & SWT 4
W JavaFX Label in Controller-Klasse in einer anderen Controller-Klasse ändern AWT, Swing, JavaFX & SWT 9
D Swing [Frage] ComboBox + Label AWT, Swing, JavaFX & SWT 3
G Label erstellen AWT, Swing, JavaFX & SWT 6
U Label zeigt nicht überall HTML Zeichen AWT, Swing, JavaFX & SWT 3
F JavaFX label.getWidth() AWT, Swing, JavaFX & SWT 2
T Swing Label aus anderer Methode bearbeiten AWT, Swing, JavaFX & SWT 2
N Input/Output Stream werte in Label anzeigen. AWT, Swing, JavaFX & SWT 6
R JavaFX Label ändern in aufgerufener AnchorPane AWT, Swing, JavaFX & SWT 3
B Swing label.setText() macht probleme AWT, Swing, JavaFX & SWT 5
T Swing Aktuelle Größe eines Textes in einem Label darstellen AWT, Swing, JavaFX & SWT 3
KrokoDiehl Swing Buchstaben im Label anders färben AWT, Swing, JavaFX & SWT 4
K Zugriff auf Label und Ereignisbehandlung durch zwei Handlerklassen AWT, Swing, JavaFX & SWT 3
P Label rotieren mit Timer AWT, Swing, JavaFX & SWT 5
C Label wird nicht an der richtigen Position angezeigt.. AWT, Swing, JavaFX & SWT 7
H Label mit Icon positionieren AWT, Swing, JavaFX & SWT 14
E Netbeans: Buttons mit Label bzw. Rahmen unterlegen AWT, Swing, JavaFX & SWT 8
J resize - Label bleibt erst schwarz AWT, Swing, JavaFX & SWT 4
T label überschriebt seine werte-SWT AWT, Swing, JavaFX & SWT 3
O Swing JTree um Label (oder Panel) erweitern AWT, Swing, JavaFX & SWT 9
D Label über JScrollPane AWT, Swing, JavaFX & SWT 3
N Label auf Hauptfenster manipulieren AWT, Swing, JavaFX & SWT 2
S VAADIN: Problem mit Label AWT, Swing, JavaFX & SWT 18
P Ausgabe Label AWT, Swing, JavaFX & SWT 6
GUI-Programmer Informations-Panel an Label AWT, Swing, JavaFX & SWT 2
S ImageIcon von Label entfernen AWT, Swing, JavaFX & SWT 9
B Label breite ermitteln vor dem rendern? AWT, Swing, JavaFX & SWT 7
A Bekomme das Label nicht in die Mitte von Reihe AWT, Swing, JavaFX & SWT 7
H SWT Markierbares Label AWT, Swing, JavaFX & SWT 8
R Label in den Vordergrund einblenden AWT, Swing, JavaFX & SWT 5
J Hintergrund Label-Frame AWT, Swing, JavaFX & SWT 3
O Swing Label(bzw. Grafik) verdekt von anderm Label AWT, Swing, JavaFX & SWT 2
A TextField und Label AWT, Swing, JavaFX & SWT 8
L Label dynamisch awt AWT, Swing, JavaFX & SWT 2
J Label mit transparentem hintergrund - geht das? AWT, Swing, JavaFX & SWT 21
B Die Werte von getLocation() im Label anzeigen AWT, Swing, JavaFX & SWT 4
Avalarion SWT Listener auf Label oder Text Teile AWT, Swing, JavaFX & SWT 10
C Label Hintergrundbild mit Text AWT, Swing, JavaFX & SWT 6
A SWT - Farbe von Text auf Label ändern AWT, Swing, JavaFX & SWT 2
M gridbaglayout - abstand bei label und field AWT, Swing, JavaFX & SWT 8
hdi SWT Label Text vertikal zentrieren AWT, Swing, JavaFX & SWT 6
T In einem Label scrollen AWT, Swing, JavaFX & SWT 3
Spot84 swt label zeilenumbruch will nicht funktionieren AWT, Swing, JavaFX & SWT 1
L JFreeChar Label für StackedBar AWT, Swing, JavaFX & SWT 3
lumo SWT Label - onResize? AWT, Swing, JavaFX & SWT 5
DasDogma AWT Problem bei Wertzuweisung für Label AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben