Wie mache ich non-modal dialog, dessen setVisible-Methode blockiert?

In einem Schwung (J)Dialog, setModal legt die Modalität - also ob der dialog sollte-block-Eingang, um andere Fenster oder nicht. Dann, setVisible-Methode docs sagen für modale Dialoge:

Wenn das Dialogfeld nicht angezeigt wird, wird dieser Anruf wird nicht zurückkehren, bis der dialog ausgeblendet wird durch Aufruf der setVisible-Methode(false) oder dispose auf.

Tatsächlich setVisible hat Rückkehr sofort, wenn der dialog nicht modal ist. Beispiel-code:

JDialog jd = new JDialog();
jd.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);

/**
 * If set to false, setVisible returns right away.
 * If set to true, setVisible blocks until dialog is disposed.
 */
jd.setModal(false);

System.out.println("setting visible");
jd.setVisible(true);
System.out.println("set visible returned");

Möchte ich einen dialog, der nicht block input zu den anderen Fenstern, aber immer noch hat den Anrufer blockieren. Was ist ein guter Weg, dies zu tun, jetzt, dass setVisible nicht blockiert, wenn der dialog nicht modal ist?

Gibt es einige Gründe warum setVisible's Verhalten ist abhängig von der Modalität?

  • Lesen Sie die obige Zeile in die Google docs: es ist ziemlich deutlich sagt: "Notizen für modale Dialoge."
  • Oops, mein schlechtes. - Bearbeitung...
Schreibe einen Kommentar