Masz całkowitą rację, mówiąc, że interfejs użytkownika jest czasochłonny, kosztowny i podatny na błędy!
Wielki kompromis znalazłem się następująco ...
zdałem sobie sprawę, że wiele danych (jeśli nie większość) można przedstawić za pomocą prostego stołu (takich jak JTable), zamiast nieustannie próbować tworzyć niestandardowe panele i fantazyjne GUI. Na początku nie wydaje się to oczywiste, ale jest całkiem przyzwoite, użyteczne i atrakcyjne wizualnie.
Dlaczego jest tak szybki?Ponieważ udało mi się stworzyć ramę wielokrotnego użytku, która może przyjmować kolekcję konkretnych modeli i przy niewielkim wysiłku, może sprawić, że wszystkie te modele znajdą się w tabeli. Tak wiele kodu ponownego wykorzystania, to niewiarygodne.
Dodając pasek narzędzi nad oknem, moja struktura może dodawać, usuwać lub edytować wpisy w tabeli. Korzystając z pełnej mocy JTables, mogę ukryć (przez filtrowanie) i sortować w razie potrzeby, rozszerzając różne klasy (ale tylko wtedy, gdy jest to wymagane).
Używam wielu kawałków kodu za każdym razem, gdy chcę wyświetlać i zarządzać nowymi modelami. Używam szeroko ikon (na kolumnę, wiersze lub komórki, itp.), Aby upiększyć ekrany. Używam dużych ikon jako nagłówka okna, aby każdy ekran był "inny" i atrakcyjny i zawsze wygląda jak nowy i inny ekran, ale zawsze jest za nim ten sam kod.
Najpierw trzeba było dużo pracy i wysiłku, aby zrobić ramy, ale teraz spłacanie czasu.
Potrafię napisać GUI dla zupełnie nowej aplikacji z aż 30 do 50 różnych modeli, składającą się z tak wielu ekranów w ułamku czasu, jaki zajęłoby mi użycie "niestandardowej metody interfejsu użytkownika".
Polecam ocenić i zbadać to podejście!
Nie jestem zbyt pewien, dlaczego wybrałbyś tę odpowiedź jako "odpowiedź" andy? Jest to najbardziej ogólna/niejasna odpowiedź. Właściwie to nie wiem nawet, jak na świecie można znaleźć rozwiązanie twojego problemu i poprawić czas programowania interfejsu użytkownika Naked Objects. Czy byłoby możliwe przekazanie informacji zwrotnej na temat tego, co widzisz w tym rozwiązaniu, które sprawia, że myślisz, że rozwiązuje problem w twoim pytaniu? Nie jestem sarkastyczny, jestem po prostu ciekawy. Dzięki! – Jeach
obvioiusly Nie mogę mówić za OP, ale Naked Object Frameworks robią dokładnie to, o co prosił: generują interfejs użytkownika z API –