Platzieren eines JLabels an einer bestimmten x, y-Koordinate eines JPanels

8

Ich versuche, eine Reihe von JLabels an bestimmten X- und Y-Koordinaten auf einem JPanel zu platzieren (und auch seine Höhe und Breite einzustellen). Egal, was ich mache, jedes Label wird sofort rechts neben dem vorherigen Label angezeigt und hat genau die gleiche Größe wie alle anderen.

Im Moment befindet sich mein Jpanel in einem Raster-Layout. Ich habe versucht, Absolute Layout (ungültige Argument Ausnahme Ergebnisse), Free Design (keine Etiketten erscheinen), Flow Layout (alles wird nur in die Mitte gedrückt), und ein paar andere.

Ich bin mir nicht sicher, was ich tun muss, damit dies funktioniert. Kann jemand helfen? Danke!

%Vor%     
Alex 25.08.2012, 05:07
quelle

6 Antworten

16

Sie müssen das Layout Ihres Containers auf null setzen:

%Vor%

Es empfiehlt sich jedoch auch, sich den Matisse Layout Manager anzuschauen, ich nehme an, er heißt jetzt GroupLayout. Das Hauptproblem bei der absoluten Positionierung ist, was passiert, wenn das Fenster seine Größe ändert.

    
gersonZaragocin 25.08.2012, 05:27
quelle
4
  1. Setzen Sie den Layout-Manager des Containers auf null, indem Sie setLayout(null) aufrufen.

  2. Rufen Sie die Methode setbounds der Component-Klasse für alle untergeordneten Elemente des Containers auf.

  3. Rufen Sie die Repaint-Methode der Component-Klasse auf.

Hinweis:

Das Erstellen von Containern mit absolut positionierten Containern kann zu Problemen führen, wenn das Fenster mit dem Container in der Größe geändert wird.

Siehe diesen Link: Ссылка

    
Vinesh 25.08.2012 05:15
quelle
3

Layout-Manager werden verwendet, um das Layout von Komponenten in einem Container automatisch zu bestimmen. Wenn Sie Komponenten an bestimmten Koordinatenpositionen platzieren möchten, sollten Sie keinen Layout-Manager verwenden.

%Vor%

oder

%Vor%     
Kevin Reid 25.08.2012 05:15
quelle
2

Ich rate dazu, eine IDE wie NetBeans mit ihrem GUI-Editor zu verwenden. Um den Code zu inspizieren und weil es viele Wege gibt:

Die Einstellung des Layout-Managers oder die absolute Positionierung, die myPanel.setLayout (null) ausführt, hat mehrere Einflüsse.

Wenn Sie Ihre Aufrufe im Konstruktor eines JFrame ausführen, können Sie im Allgemeinen pack() aufrufen, um das Layout zu starten.

Dann verwendet jeder Layout-Manager eine eigene Implementierung von add(Component) oder add(Component, Constraint) . BorderLayout wird mit add (label, BorderLayout.CENTER) usw. verwendet.

    
Joop Eggen 25.08.2012 05:19
quelle
0
%Vor%     
isra israel 10.03.2017 03:46
quelle
-1

Sie können Ihre eigene Methode verwenden, die bySize, setLocation-Werte für direkt aufruft ....! " Außerdem zeige ich Ihnen, wie Sie JProgress Bar

verwenden %Vor%     
Risith Ravisara 11.06.2016 18:54
quelle