Newsgroup: it.comp.java
Titolo: JDialog

Io vorrei far apparire una JDialog e che contemporaneamente la finestra
principale sia visibile ma non accessibile.
Insomma fino a che non clicco
il pulsante sulla JDialog non posso andare avanti.
Che metodi usare per
favore...sto cercando ma non trovo nulla-
Grazie
--------------------------------
Inviato via 
http://usenet.iol.it

Ovviamente devi fare una JDialog NON modale e fin qui ci siamo.
Per bloccare il JFrame principale, dovrebbe bastare il banale
setEnabled(false);
Quando visualizzi la JDialog, fai il setEnabled(false) del JFrame.
Quando chiudi la JDialog, fai il setEnabled(true) del JFrame.

 |
| Delete WORLD from address    |
+------------------------------+

Ovviamente devi fare una JDialog NON modale e fin qui ci siamo.
[CUT]
Perché "ovviamente"?
Per quanto ne so, le finestre (i dialog in particolare) modali servono 
proprio a fare ciò che chiede Sergio.
-- 
Ciao
	Fabrizio C.

Le dialog modali rimangono fisse in primo piano, mentre lui vuole
possibilità di mandarla in secondo piano.
Riporto quanto richiesto :
[Diego]
Io vorrei far apparire una JDialog e che contemporaneamente la finestra
principale sia visibile ma non accessibile.
[------------------------------------------]
Se un JDialog/Dialog è di tipo modale, rimarrà sempre sovrapposta al frame
chiamante, anche chiamando esplicimitamente il metodo toBack(); (della
classe padre Windows) la JDialo/Dialo rimane in primo piano.
L'unica per fare quello che ha chiesto è togliergli la modalità e bloccare
il Frame/JFrame disabilitandolo.
Se poi ho capito male, beeeeeeeeehhhhhhhhhhhhh!!!!!!!!!!!! Ci rimango un
sacco male e non vi parlo più!!!!

Se poi ho capito male,
Più che altro hai dato la tua interpretazione ;-D
Prova il codice che segue, così magari capiamo cosa interpretiamo 
diversamente...
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class SottoSopra {
  private JFrame frame;
  private JCheckBox cb;
  public SottoSopra() {
    frame = new JFrame("Modale o no?");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JButton button = new JButton("Apri il dialog");
    button.addActionListener(
      new ActionListener() {
        public void actionPerformed(ActionEvent e) {
          JDialog dialog = new JDialog(frame, "TITOLO", cb.isSelected
());
          dialog.setSize(150, 150);
          dialog.setVisible(true);
        }
      });
    frame.getContentPane().setLayout(new FlowLayout
(FlowLayout.CENTER));
    cb = new JCheckBox("Modale?", true);
    frame.getContentPane().add(cb);
    frame.getContentPane().add(button);
    frame.pack();
    frame.setVisible(true);
  }
  public static void main(String[] args) {
    new SottoSopra();
  }
}
-- 
Ciao
	Fabrizio C.

Conosco perfettamente le Dialog/JDialog e so cos'è la modalità.
Leggendo frettolosamente il post ho pensato che volesse una Dialog con la
possibilità di mandarla in secondo piano, ma che bloccasse comunqu il Frame.
Rileggendolo meglio, hai ragione, parlava più banalmente delle DIalog con
modalità attiva.
Visto che ci sono ne approfitto.
Ho riscontrato un bug documentato anche sul sito della SUN (conosco poco
l'inglese e quindi non ho capito tutto quello che c'era scritto) su Dialog
modali che lanciano altre Dialog modali.
Ho notato che quando si chiude la seconda Dialog, la prima perde la
modalità? O meglio rimane in primo piano ma il frame intercetta gli eventi.
Sul sito della SUN ho trovato qualcosa, ma erano delle Dialog che
chiamanvano i FIleDialog se non ricordo male.
Non sono riuscito a capire se c'era la documentazione anche di questo caso e
di metodi su come aggirarlo.
Per ora l'unico funzionante è fare il setVisible(true); e setVisible(false);
della Dialog.
Flescia terribilmente ma almeno si recupera la modalità.
Ciao

modali che lanciano altre Dialog modali.
[CUT]
Su questo non so essere d'aiuto, ma ci darò un'occhiata (prima o poi).
Grazie per la segnalazione.
-- 
Ciao
	Fabrizio C.