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%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.
Setzen Sie den Layout-Manager des Containers auf null, indem Sie setLayout(null)
aufrufen.
Rufen Sie die Methode setbounds
der Component-Klasse für alle untergeordneten Elemente des Containers auf.
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: Ссылка
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%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.
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%Tags und Links java swing layout jcomponent null-layout-manager