Ich möchte hinzufügen, JTable
in JPanel
wessen Layout ist null
. JPanel
enthält andere Komponenten. Ich muss JTable
an der richtigen Stelle hinzufügen .
235
Ich möchte hinzufügen, JTable
in JPanel
wessen Layout ist null
. JPanel
enthält andere Komponenten. Ich muss JTable
an der richtigen Stelle hinzufügen .
Antworten:
Beispiel für ein verschachteltes / kombiniertes Layout
Das Java-Lernprogramm enthält umfassende Informationen zur Verwendung von Layout-Managern. Siehe das Layout von Komponenten in einem Container Lektion für weitere Details.
Ein Aspekt von Layouts ist das nicht der im Lernprogramm gut behandelt wird, sind verschachtelte Layouts, bei denen ein Layout in ein anderes eingefügt wird, um komplexe Effekte zu erzielen.
Der folgende Code fügt eine Vielzahl von Komponenten in einen Frame ein, um die Verwendung verschachtelter Layouts zu demonstrieren. Alle explizit festgelegten Layouts werden als Titelrahmen für das Bedienfeld angezeigt, in dem sie verwendet werden.
Bemerkenswerte Aspekte des Codes sind:
Nimbus PLAF
NestedLayoutExample.java
Andere Screenshots
Windows PLAF
Mac OS X Aqua PLAF
Ubuntu GTK + PLAF
quelle
Verwenden Sie kein Null-Layout. Erfahren Sie, wie Sie LayoutManager verwenden:
http://download.oracle.com/javase/tutorial/uiswing/layout/using.html
Mit LayoutManagern können Sie die Größe von Fenstern oder die Anzahl dynamischer Komponenten richtig handhaben. Sie mögen zunächst einschüchternd wirken, aber es lohnt sich, sie zu lernen.
quelle
Wie ich mich erinnern kann, bedeutet das Null- Layout eine absolute Position, so dass es ziemlich schwierig sein wird, den X-Punkt für Ihre Position in der linken oberen Ecke von JTable zu zählen. Wenn Sie jedoch nur alle Panel-Komponenten einzeln haben möchten, können Sie den FlowLayout () -Manager als verwenden
oder wenn Sie das Panel ausfüllen müssen, sollten Sie GridLayout () als ...
Viel Glück
quelle
Wenn Sie den Null-Layout-Manager verwenden, müssen Sie immer die Grenzen einer Komponente festlegen. Das ist das Problem in Ihrem Fall.
Sie sollten das tun, was alle hier vorschlagen, und einen Layout-Manager verwenden, der glaubt, Zeit zu sparen. Schauen Sie sich das Tutorial in @ jzds Beitrag an.
Viel Spaß, Boro.
quelle
JTable
sollte in die hinzugefügt werden,JScrollPane
die tatsächlich in die hinzugefügt werden sollteJPanel
.Der
JPanel
sollte einen Layout-Manager haben.Wenn Sie sich nicht für die Genauigkeit der Komponentengröße interessieren, können Sie pure verwenden
BorderLayout
und mitFlowLayout
und kombinierenGridLayout
. Wenn Sie Präzision benötigen, verwenden Sie jgoodiesFormLayout
.Das
FormLayout
ist wirklich knifflig, aber Sie können ein wenig damit spielenWindowBuilder
(was in Eclipse eingebettet ist) und einen Blick auf den Code werfen, den es generiert. Es mag kompliziert aussehen, aber es ist nur eine Unwissenheit.Viel Glück.
quelle
Zunächst sollten Sie andere Layout-Manager ernsthaft in Betracht ziehen, beispielsweise ist der BorderLayoutManager (neues JPanel (neues BorderLayout ())) ein guter Anfang.
Denken Sie auch beim Entwerfen Ihres Dialogfelds daran, dass Sie Ihre Layouts verschachteln können und sollten : ein JPanel in einem anderen JPanel (z. B. ein GridLayout in einem BorderLayout). Bitte beachten Sie: Die Größe eines "guten" Dialogfelds sollte ordnungsgemäß geändert werden. Wenn der Benutzer die Größe Ihres Frames ändert, möchten Sie Ihre Informationsobjekte wie Ihre Tabelle automatisch erweitern und keine großen Bereiche des JPanel-Hintergrunds anzeigen. Das können Sie mit einem NullLayout nicht erreichen.
Aber es gibt wahrscheinlich Fälle - irgendwo in dieser großen Welt - in denen ein NullLayout genau das Richtige ist. Hier ist ein Beispiel:
quelle
Wenn eine Komponente ein "Null" -Layout hat, müssen Sie das Layout selbst verwalten. Dies bedeutet, dass Sie die Abmessungen und Positionen für die untergeordneten Elemente der Komponente berechnen müssen, um zu entscheiden, wo sie gezeichnet werden. Ziemlich langweilig, es sei denn, es ist absolut notwendig.
Wenn Sie dieses feinkörnige Steuerelement wirklich wollen, versuchen Sie es vielleicht zuerst mit GridBagLayout, bevor Sie mit der Benutzeroberfläche beginnen.
quelle
Sie können den folgenden Code verwenden. So fügen Sie JTable zu JPanel hinzu
quelle
Hoffe das hilft.
quelle
Das Tabellenmodell hängt von Ihrer Anforderung ab
quelle
Versuche dies.
quelle