Chcę dodać JTable
do JPanel
którego układu jest null
. JPanel
zawiera inne składniki. Muszę dodać JTable
w odpowiedniej pozycji.
235
Chcę dodać JTable
do JPanel
którego układu jest null
. JPanel
zawiera inne składniki. Muszę dodać JTable
w odpowiedniej pozycji.
Odpowiedzi:
Przykład układu zagnieżdżonego / kombinacji
Samouczek Java zawiera wyczerpujące informacje na temat korzystania z menedżerów układu. Więcej informacji można znaleźć w lekcji Rozmieszczanie komponentów w kontenerze .
Jednym z aspektów układów, który nie jest dobrze opisany w samouczku, jest układ zagnieżdżony, umieszczający jeden układ wewnątrz drugiego, aby uzyskać złożone efekty.
Poniższy kod umieszcza różne komponenty w ramce, aby zademonstrować, jak używać układów zagnieżdżonych. Wszystkie jawnie ustawione układy są pokazane jako obramowanie tytułowe dla panelu, na którym są używane.
Ważnymi aspektami kodu są:
Nimbus PLAF
NestedLayoutExample.java
Inne zrzuty ekranu
Windows PLAF
Mac OS X Aqua PLAF
Ubuntu GTK + PLAF
źródło
Nie używaj układu zerowego. Naucz się korzystać z LayoutManagers:
http://download.oracle.com/javase/tutorial/uiswing/layout/using.html
LayoutManagers pozwalają poprawnie obsługiwać zmiany rozmiaru okna lub dynamiczne zliczanie składników. Z początku mogą się wydawać zastraszające, ale warto się nauczyć.
źródło
Jak pamiętam, układ zerowy oznacza pozycję bezwzględną, więc trudno będzie policzyć punkt X dla położenia JTable w lewym górnym rogu. Ale jeśli chcesz mieć wszystkie komponenty panelu jeden po drugim, możesz użyć menedżera FlowLayout () jako
lub jeśli chcesz wypełnić panel, powinieneś użyć GridLayout () jako ...
Powodzenia
źródło
Jeśli używasz zerowego menedżera układu, zawsze musisz ustawić granice komponentu. To jest problem w twoim przypadku.
Powinieneś zrobić to, co wszyscy sugerują tutaj i przejść i użyć jakiegoś menedżera układu, który wierzy, że oszczędza czas. Idź i sprawdź samouczek w poście @ jzd.
Ciesz się, Boro.
źródło
JTable
należy dodać do tego,JScrollPane
co faktycznie należy dodać doJPanel
.JPanel
Powinien mieć jakiś menedżer układu.Jeśli nie zależy ci na precyzji rozmiaru komponentów, możesz użyć czystego
BorderLayout
i połączyć go zFlowLayout
iGridLayout
. jeśli potrzebujesz precyzji - użyj jgoodiesFormLayout
.Jest
FormLayout
to naprawdę trudne, ale możesz się trochę pobawićWindowBuilder
(który jest osadzony w Eclipse) i spojrzeć na kod, który generuje. Może to wyglądać na skomplikowane, ale to tylko ignorancja.Powodzenia.
źródło
Po pierwsze, powinieneś poważnie rozważyć inne menedżery układów, na przykład BorderLayoutManager (nowy JPanel (nowy BorderLayout ())) to dobry początek.
Również przy projektowaniu okna dialogowego pamiętaj, że możesz i powinieneś zagnieżdżać swoje układy : jeden JPanel w innym JPanel (np. GridLayout wewnątrz BorderLayout). Uwaga: „dobre” okno dialogowe powinno mieć odpowiednią wielkość, aby użytkownik zmienił rozmiar ramki, aby automatycznie rozszerzyć obiekty informacyjne, takie jak tabela, i nie pokazywać dużych obszarów tła JPanel. Tego nie da się osiągnąć za pomocą NullLayout.
Ale prawdopodobnie są przypadki - gdzieś w tym wielkim świecie - gdzie NullLayout jest właśnie tym. Oto przykład:
źródło
Gdy komponent ma układ „zerowy”, musisz sam zarządzać układem, co oznacza, że musisz obliczyć wymiary i lokalizacje elementów potomnych komponentu, aby zdecydować, gdzie zostaną narysowane. Dość żmudne, chyba że jest to absolutnie konieczne.
Jeśli naprawdę chcesz mieć tę precyzyjną kontrolę, spróbuj najpierw GridBagLayout, zanim popełnisz błąd w ustawieniach interfejsu użytkownika.
źródło
Możesz skorzystać z następującego kodu. Aby dodać JTable do JPanel.
źródło
Mam nadzieję że to pomoże.
źródło
model stołu zależy od wymagań
źródło
Spróbuj tego.
źródło