Problem bei der Anzeige des "Drucker Auswahl"-Dialogs

vfl_freak

Premium-User
Hallo zusammen,

ich habe folgendes Problem:

ich habe einem eigenen JDialog einen Druck-Button eingebaut.
Hierüber wird im Hintergrund aus dem Text, der im Dialog angezeigt wird, ein Drucktext erzeugt, der als Datei gespeichert wird. Anschließend soll der Standard-Drucker-Auswahl-Dialog aufpoppen, um dort den gewünschten Drucker auswählen zu können ...

Das Drucken klappt sehr, nur habe ich Problem mit der Anzeige des Drucker-Auswahl-Dialogs. Dies klappt leider nicht, da der genannte JDialog modal sein muss!
Dies hat zur Folge, dass das Drucker-Auswahlfenster zwar erzeugt wird, aber natürlich auch hinter dem JDialog liegt und auch erst dann in den Vorgrund gebracht werden kann, wenn der JDialog wieder geschlossen worden ist.
Wenn ich den JDialog auf nicht modal setze, wird er nur ganz kurz angezeigt, wartet aber natürlich nicht auf die Benutzereingabe "schliessen", sondern wird (programmgesteuert) sofort wieder geschlossen und die Anwendung läuft weiter, ohne das man das Drucken (oder andere Aktionen) aufrufen konnte.

Dieser Aufruf des Drucker-Auswahlfensters geschieht mit javax.print.ServiceUI
Java:
// wenn als Device -1 übergeben wird, wird ein Dialog für das "Drucker auswählen" ausgegeben!
if (iDevice == -1)
{
    service = ServiceUI.printDialog(
    GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration(),
					200, 200, printService, defaultService, flavor, pras
				);
}

So wie es sehe, kann ich hierbei ja weder ein Parent übergeben noch auch diesen Dialog modal setzen ... :(

Hat irgendwer eine Idee, wie ich dieses Problem lösen kann ?

Danke und Gruß
Klaus
 
Ah, ich bin gerade im Web zufällig über die Lösung gestolpert :p
Ich musste den genannten JDialog auf DOCUMENT_MODAL setzen (das geht ab Java6) !

Java:
this.setModalityType( JDialog.ModalityType.DOCUMENT_MODAL );

Gruß und allerseits schöne Feiertage !
Klaus
 
Zurück