Mam okno dialogowe ustawień modalnych, które jest JDialogiem. W tym oknie ustawień umieściłem kilka komponentów, w tym przycisk do jeszcze jednego okna ustawień modalnych, który jest również JDialogiem. Zrobiłem je JDialogs, ponieważ jest to jedyny sposób, jaki znam, aby stworzyć dialog modalny.Jak utworzyć modalny JDialog na innym modalnym JDialogu
Problem polega na tym, że gdy utworzę główne okno dialogowe, muszę skonstruować JDialog bez ramki rodzica lub z ramką rodzica. Ponieważ moim głównym oknem jest JFrame, mogę po prostu przekazać to do głównego konstruktora okna dialogowego ustawień. Ale gdy chcę utworzyć drugie okno dialogowe ustawień modalnych, które powinno mieć główne okno dialogowe ustawień jako rodzic, nie mogę znaleźć sposobu, aby uzyskać ramkę (J) JDialog. Chciałbym przekazać to główne okno dialogowe ustawień jako rodzic, aby okno drugiego ustawienia stało się na środku, gdy zostanie wyświetlone. Załóżmy, że drugie okno dialogowe ustawień nie ma konstruktora do przekazania lokalizacji, tylko konstruktorów JDialog.
Czy istnieje sposób, aby uzyskać ramkę (J) JDialog? Czy w mojej konfiguracji występuje błąd projektowy i czy powinienem użyć czegoś innego w tych oknach dialogowych ustawień? (A jeśli tak, to jak mam zrobić te alternatywne ustawienia dialogi modalne?)
Dziękuję za pomoc, Erik
UPDATE: Dziękuję wszystkim za odpowiedzi. Doprowadzili mnie do zrozumienia, że najwyraźniej nie jest absolutnie konieczne posiadanie właściciela JDialoga. Myślałem, że jest to potrzebne, aby dialog mógł wyłączyć właściciela, dopóki okno dialogowe nie zostanie zamknięte, ale najwyraźniej modalność jest niezależna od właściciela. Zauważyłem również, że nawet właściciel okno nadal nie koncentrować się na właściciela, więc teraz mój kod jest jak:
public class CustomDialog extends JDialog {
public CustomDialog(String title) {
setModal(true);
setResizable(false);
setTitle(title);
buildGUI();
}
public Result showDialog(Window parent) {
setLocationRelativeTo(parent);
setVisible(true);
return getResult();
}
}
Pozwala to również na modalnych okien dialogowych w modalnych okien dialogowych.
Dzięki za pomoc!
I nie byłoby po prostu zrobić okno ustawień może być modalne do czegokolwiek. Co zrobić, jeśli muszą korzystać z aplikacji, gdy pracują w oknie ustawień? Wydaje mi się to bardzo restrykcyjne. –