Witam, jak robić by drugie wywołane okno z kolei uniemożliwiało klikanie po pierwszym dopóki te drugie nie zostanie zamknięte. Jak jest w przypadku użycia JFrame a następnie JFileChooser.
gdy przechodzisz do 2. okna to na pierwszym ustwiasz 'setEnabled(false)' a gdy do niego wracasz to 'setEnabled(true)' i po sprawie...
no prawie o to mi chodzi ;-) brakuje mi tego elementu, że jak kliknę okno nieaktywe, tylne to pasek tytułu aktywnego powinien zamrygać. Jak jest w relacji JFrame/JFileChooser :-)
czyli chcesz otwierać okienko modalne :) które będzie w rzeczywistości JFramem.
to zaczynamy algorytm:
gdy otwierasz okno nr 2 to ustawiasz flagę logiczną otwarte
gdy chcesz przejść na okno 1 sprawdzasz flagę, gdy fałsz to przechodzisz gdy prawda to o1.setEnable(false) i o2.setEnable(true) i beep :)
zamykasz okno 2 flaga na false
nie wiem czy to zmienia cos w kontekscie tego co Shimmi napisał. Jak dla mnie na jedno wychodzi :-) Ja chce efekty mrygajacego okna - w ten sposób się da?
Wy naprawdę rozwiązujecie problem okien modalnych używając setEnabled :|?
Okna modalne robi się w ten sposób (cjtomekk, efekt mrugania też tym uzyskasz):
import java.awt.Dialog.ModalityType;
import javax.swing.JDialog;
import javax.swing.JFrame;
public class ModalFrame extends JDialog {
public ModalFrame(JFrame parent) {
super(parent);
setModalityType(ModalityType.APPLICATION_MODAL);
setSize(200,150);
setVisible(true);
}
}
To działa w javie 6, we wcześniejszych wersjach zamiast setModalityType, używało się metody setModal(true).
dzięki Anke, problem rozwiązany :-)