2009-06-14 2 views
5

C'è un modo per gestire l'ordine z della finestra di JDialog in java?Ordine z della finestra in java

Mi piacerebbe poter assegnare ciascuna finestra a un livello in modo tale che le finestre degli strati inferiori non possano mai andare sopra e oscurare le finestre sugli strati superiori. Anche quando hanno attenzione. Simile alla capacità Z-order esistente per i componenti ma per le finestre di JDialog.

La soluzione non deve funzionare su tutti i sistemi operativi. Una soluzione specifica per Linux è accettabile.

+0

questo sembra essere un duplicato di http://stackoverflow.com/questions/767605/is-there-a-swing-hack-to-query-or-set-z-order-of-a-window – akf

+0

Il tuo diritto, è un dupe. Ho cercato i tag zorder e AND zorder prima di postare e ancora mi mancava quello. Ora dovrei cancellare questo o un moderatore lo chiude/duplica? – Aaron

+0

Non è proprio un duplicato - il caso d'uso reale è molto diverso. –

risposta

0

L'unica gestione che sono riuscito a trovare per l'ordine Z di Windows è che è possibile inviarli all'inizio dell'ordine con toFront() o che è possibile impostarli come sempre in cima con setAlwaysOnTop() . Questo è un ordinamento z molto basilare, non sembra che la classe Window ti dia tanto ordine di grana fine quanto fanno i componenti all'interno dei Container.

0

Poiché Java ora supporta transparent and shaped windows, potresti essere in grado di simulare ciò utilizzando una finestra invisibile e rendendo le finestre "reali" solo componenti, o forse JInternalFrame s.

+0

Grazie. Sfortunatamente sono costretto a usare componenti pesanti (jogl canvas) in alcune finestre, quindi non posso usare JInternalFrames. – Aaron