Ładowanie wielu kontrolek

0

Piszę aplikację desktopową, która łączy się z bazą danych i ma możliwość zmiany bardzo wielu pól. Aplikacja zawiera kilka zakładek, a zakładki z kolei zawierają bardzo dużo kontrolek do edycji: pola tekstowe, Combobox-y, Checkbox-y, zmiana daty, inne. Ładowanie wszystkich kontrolek jest bardzo czasochłonne i i nie wygląda zbyt dobrze graficznie - kontrolki mrugają podczas ładowania, zachodzą na siebie - jednym słowem nie wygląda to dobrze. Jakie wzorce można zastosować w tym przypadku aby rozwiązać ten problem? Jakie są najlepsze rozwiązania. Myślałem aby zmienić proces tworzenia kontrolek.
Obecnie jest tak że w pętli przechodzę przez wczytaną konfigurację i tworzę kontrolkę i od razu wrzucam ją na kontrolkę-rodzica. Myślałem o stworzeniu najpierw wszystkich kontrolek a następnie wrzucenie ich do widoku. Czy znacie jakieś podobne rozwiązania? Chciałbym też w trakcie tworzenia kontrolek aby dodać jakiś ProgresBar postępu pracy.

0

A mozesz pokazac kontrolki dopiero po zaladowaniu? Z opisu wnosze ze najpierw pokazujesz okno, a pozniej zaczynasz wycztywanie i to powoduje rozne resizy okna i kontrolek. Moze pokaz jakis splash, itp i laduj, i na koniec setVisible(true) dla okna. Cos jak uruchamiasz eclipsa.

0

To by było dobre rozwiązanie tylko przy starcie aplikacji. U mnie jest możliwość zmieniania obiektów podczas działania aplikacji. Jeśli zmienię obiekt, muszę wczytać jego kontrolki do edycji.
Obiektów jest wiele typów, każdy typ może posiadać wiele konfiguracji, więc muszę ładować dla każdego obiektu wszystkie kontrolki za każdym razem.

0

luknij na to może ci się przyda
http://code.google.com/p/gcl-dsl/

0

Aby uniknąć pojawiania się elementów po kolei:

  1. Tworzysz JPanel
  2. Wstawiasz do niego potrzebne elementy
  3. Dodajesz ten panel do okna

Podobną technikę stosuje się też w innych językach, np. w JavaScripcie gdy buduje się fragment drzewa DOM, a następnie dodaje się to drzewo do dokumentu.

Możesz jeszcze zobaczyć Javę FX:
http://java.sun.com/javafx/

0

Pomysł z Panel-em jest bardzo dobry. Spróbuję go wprowadzić w życie. :-)

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