Заставить один JFrame всегда находиться поверх другого

Я хочу иметь JFrame, который всегда находится поверх другого «родительского» фрейма, но не всегда поверх всего.

Я попытался использовать:

  1. JInternalFrame -- не работает, потому что я должен использовать JDesktopPane, что неприемлемо, потому что родительский фрейм зависит от макета границы.
  2. JFrame с setAlwaysOnTop(true) -- не работает, потому что я хочу, чтобы он был только поверх родительского фрейма

Я представляю себе такой метод, как setAlwaysOnTopOf(JFrame parent). Есть ли способ сделать это?


person chessofnerd    schedule 31.07.2013    source источник


Ответы (2)


Я хочу иметь JFrame, который всегда находится поверх другого «родительского» кадра.

Приложения должны содержать только один JFrame. Если вам нужно дочернее окно, используйте (модальное?) JDialog и укажите фрейм в качестве родителя.

person camickr    schedule 31.07.2013
comment
Спасибо! Немодальный-диалог оказался именно тем, что мне было нужно! Для сбитых с толку людей вроде меня недостающая часть диалога — new JDialog(SwingUtilities.windowForComponent(this));. См. stackoverflow.com/questions/7584646/ - person chessofnerd; 01.08.2013

это зависит от того, какой контейнер вы используете... привяжите свой jFrame к контейнеру.. попробуйте добавить метод..

person kAmol    schedule 31.07.2013