BoxLayout dynamiczne dodawanie komponentów

0

Witam
Od kilku dni borykam się z pewnym problemem. Utworzyłem panel i ustawiłem layout typu BoxLayout(Y-axis). Panel ma takie rozmiary,że powinien pomieścić dwie kolumny po 6 wierszy komponentów typu JTextField.

Na początku panel ten jest pusty. W następnej zakładce mam 12 CheckBox-ów i w zależności jaki zostanie zaznaczony odpowiedni
textField zostaje dodany do panel-u, natomiast w przypadku odznaczenia konkretny textField zostaje usunięty, a pozostałe przesuwają się na jego miejsce.

Do rzeczy: problem polega na tym iż po dodaniu 6-tego textFiled-u następny (według mojej koncepcji) powinien pojawić się w drugiej kolumnie na samej górze(ponieważ w pierwszej nie ma na niego miejsca). Jednak tak się nie dzieje, siódmy pojawia się ale częściowo wychodzi poza panel.
Zależy mi żeby ComponentOrientation były typu TL (czyli Mongolian-chyba top-to-left) według docs.oracle
AD
BE
CF
Jak to rozwiązać??

Na wszelkie pytania odpowiem po 14.

0

Żadnych sugestii, nic a nic (nie da się, poszukaj, nie wiem, itp.)? Źle opisany problem, brak kodu? Jak ktoś wie cokolwiek to niech napiszę, bo nie wiem gdzie szukać rozwiązania.

0

Skoro masz określoną liczbę komponentów, to czemu nie użyjesz GridLayout? Możesz tam zadać, że ma 2 wiersze i 6 kolumn. Możesz też użyć FlowLayout, będzie zawijał wiersz, ale tu nie masz bezpośredniego wpływu na to gdzie się zacznie drugi. Z tego co kojarzę, to BoxLayout nie ma opcji zawijania wiersza (ale to na 70% mówię).

0

Masz racje, może to będzie lepsze rozwiązanie. Tylko mam takie pytanie(zanim sprawdzę samodzielnie), jeżeli dodam załóżmy 6 TextField-ów a następnie usunę pierwszy, to czy pozostałem przesuną się na jego miejsce(bo na tym mi zależy, a w BoxLayout to działa).
I drugie pytanie: czy mogę zmienić sposób dodawanie, czyli np. dodaje od góry do dołu przy lewej krawędzi, a nie tak jak jest domyślnie od lewej do prawej?
Przykład:
14
25
36
usuwam nr 2 otrzymuję:
15
36
4
----- Edit -----
Jednak GridLayout sie nie sprawdza, dlatego że ten LM dzieli przestrzeń JPanel (w której umieszczam komponenty) w zależności od ilości dodanych komponentów. Mi natomiast zależy by każdy dodany komponent (w tym przypadku JTextField) miał taki sam rozmiar. A po drugie w JPanel-u może znajdować się jednocześnie 1 , może 6 a nawet 12 JTextField-ów, to zależy ile CheckBox-ów zaznaczy użytkownik.

1 użytkowników online, w tym zalogowanych: 0, gości: 1