Mam bardzo specyficzny problem i chciałem się dowiedzieć, czy istnieje sposób na zmianę właściciela JDialog (można go ustawić za pomocą konstruktora). Przypuszczam, że nie ma "oficjalnej" możliwości (poza hackowaniem), ale chciałem się upewnić, że czegoś nie przeoczyłem. Wszelkie pomysły i podpowiedzi na ten temat byłyby pomocne, dzięki ...Czy istnieje sposób na zmianę właściciela JDialog?
Odpowiedz
Jeśli pytanie dotyczy sposobu ponownego użycia okien dialogowych podczas cyklu życia aplikacji, lepszym rozwiązaniem jest:
- określić wszystkie treści dialogowych jako podklas JPanel
- i wystąpienie nowego JDialog z istniejącym JPanel instancji podklasy
do punktu 2, można oczywiście użyć leniwy ocenę paneli (wystąpienia po raz pierwszy używaj tylko, a następnie użyj ponownie).
Będziesz także potrzebował, aby twoje panele zaimplementowały pewien interfejs (własny), który pozwala na ponowną ich inicjalizację w celu ponownego użycia w nowym JDialogu (ponowne zainicjowanie oznacza zwykle wymazanie wszystkich zawartości pól lub ustawienie tych pól z powrotem na ich wartości domyślne).
Jedyne, co mogę wymyślić, to niebezpieczny hack (użyj refleksji i zmień właściciela, ale to może zmienić się w innej wersji JVM (nawet z tego samego vensora na tej samej platformie)).
Być może lepszym pytaniem, które możesz zadać, jest "to jest to, co próbuję zrobić ... czy naprawdę muszę zmienić właściciela okna dialogowego, czy jest lepszy sposób"? Próbuję wymyślić powody, dla których chcę zmienić właściciela i nie mogę wymyślić żadnego ...
j:
miałem podobną potrzebę jednym oknie „globalnej” w mojej aplikacji do odbycia okno „Notes”, gdy tekst w komórce tabeli jest zbyt długi, aby wyświetlić. W takim przypadku użytkownik może najechać myszką lub kliknąć prawym przyciskiem myszy na komórkę i otworzyć okno dialogowe wyświetlające cały tekst. Chciałem jednak, aby okno dialogowe było wyświetlane szybko, zwłaszcza po najechaniu myszą, więc chciałem po prostu je pokazać i ukryć. Zdecydowałem się utworzyć i zapisać to okno dialogowe w głównej klasie z ramką aplikacji jako właścicielem. Wtedy, gdy jakikolwiek widok, którego właścicielem była ramka, wymagał okna dialogowego z notatkami, widok mógł uzyskać go z głównej klasy. W tych przypadkach, w których okno dialogowe wymagało okna dialogowego z notatkami, okno nadrzędne mogło utworzyć nowe wystąpienie okna dialogowego notatek z odpowiednim właścicielem. Ponieważ te nadrzędne okna dialogowe (przynajmniej w mojej aplikacji) są usuwane po zamknięciu, okno dialogowe dodatkowych notatek będzie poza zakresem i będzie zbierane śmieci. Nadzieja, która pomaga.
- 1. Czy istnieje sposób na zmianę nazwy etykiety TFS?
- 2. Czy w Eclipse istnieje sposób na zmianę poziomu zgodności ECMAScript?
- 3. c3js: Czy istnieje sposób na zmianę rozmiaru czcionki?
- 4. Czy istnieje sposób na zmianę formatowania daty w JSON?
- 5. Czy istnieje sposób na zmianę zachowania menu vim omnicomplete?
- 6. Czy istnieje sposób na zmianę opcji kompilacji gcc dla klejnotów?
- 7. Czy istnieje sposób na zmianę katalogu .net mvc bin dir?
- 8. Czy istnieje sposób na zmianę współczynnika replikacji RDD w Spark?
- 9. Czy istnieje łatwy sposób na zmianę wersji PHP podczas programowania?
- 10. Czy istnieje sposób na zmianę typu kolumny w tabeli ula?
- 11. Czy istnieje polecenie zwrócenia właściciela pliku?
- 12. PhoneGap: Czy istnieje sposób, aby zatrzymać zmianę rozmiaru widoku klawiatury?
- 13. Czy istnieje sposób na zmianę nazwy repozytorium na Bitbucket przy użyciu ich API
- 14. Android: Czy istnieje sposób na zmianę domyślnego języka Androida na nowy?
- 15. Łatwy sposób na zmianę motywu jQuery UI?
- 16. Najlepszy sposób na zmianę słownika klucz
- 17. scala - idiomatyczny sposób na zmianę stanu klasy
- 18. Najlepszy sposób na zmianę ArrayList w Javie
- 19. Jak utworzyć modalny JDialog na innym modalnym JDialogu
- 20. Czy istnieje sposób na utrzymanie danych HSQLDB?
- 21. Jak zamknąć modalny JDialog, gdy użytkownik kliknie poza JDialog?
- 22. Czy istnieje szybki sposób na zmianę tabindeksów w formularzu z wieloma kontrolkami?
- 23. Czy istnieje sposób na zmianę szablonu Marionetki ItemView dynamicznie z RequireJS?
- 24. Czy istnieje sposób na zmianę rozmiaru czcionki tytułu w arkuszu UIActionSheet?
- 25. Czy istnieje szybki sposób na zmianę platformy rozwiązania w Visual Studio 2010?
- 26. Czy istnieje sposób na zmianę lokalnej stałej pisanej z * poza * procedura, w której została zadeklarowana?
- 27. Czy istnieje sposób na zmianę koloru czcionki Jradiobuttons za pomocą UImanager
- 28. Xcode: Czy istnieje sposób na zmianę odstępów między wierszami (etykiety interfejsu użytkownika) w programie budującym interfejs?
- 29. czy istnieje sposób na zmianę czasu pracy dla bieżącego zadania PBS
- 30. Czy istnieje sposób na usunięcie lub zmianę zmian w historii plików w repozytorium Team Foundation Studio?
Dlaczego, na Boga, chciałbyś to zrobić? – Bombe