Не с какой-либо детализацией.
Как вы говорите, вы можете вызывать toFront () и toBack (), и вы можете попросить окно "оставаться на вершине", но это почти все.
Другой вариант - иметь фрейм с внутренними фреймами и использовать setComponentZOrder () (хотя это работает только для внутренних компонентов - вы должны вызывать его для контейнера).
Я полагаю, что одной из причин того, что в Swing не было приоритета, является то, что поддержка Z-упорядочения весьма зависит от платформы. (Но эй, а что нет ...)