Создание превосходящего JFrame над другим

У меня есть два JFrame. Оба видны одновременно.

Один JFrame занимает весь экран... просто белый. (он действует как фон). А другой JFrame — это небольшая коробочка с кнопками/текстами и прочими компонентами качания.

Проблема, которую я получаю, заключается в том, что когда я щелкаю большую область JFrame, поле JFrame сворачивается. Итак, как мне указать java, чтобы убедиться, что поле JFrame всегда находится поверх фона JFrame?


person razshan    schedule 16.03.2011    source источник


Ответы (5)


Используйте JInternalFrame

person z7sg Ѫ    schedule 16.03.2011

Сделайте блок JFrame блоком JPanel.

Ваше приложение должно иметь только один JFrame.

person Gilbert Le Blanc    schedule 16.03.2011

JFrame является компонентом верхнего уровня, и поэтому обычно вы не вставляете JFrame в другой. Если вы хотите поместить свой smaller jframe в свой bigger, я бы подклассировал либо JDialog, либо JPanel.

person dantuch    schedule 16.03.2011

Как правило, приложение должно иметь только один JFrame. Остальные окна должны быть диалогами.

Проблема, которую я получаю, заключается в том, что когда я щелкаю большую область JFrame, поле JFrame сворачивается.

Когда вы используете диалоговое окно, убедитесь, что вы указали фрейм в качестве владельца диалогового окна:

JFrame frame = new JFrame();
JDialog dialog = new JDialog(frame);

Если основной фрейм будет свернут, диалоговое окно также будет свернуто. Когда кадр восстановлен, диалоговое окно всегда будет отображаться поверх кадра.

person camickr    schedule 16.03.2011

используйте Jdialog с setModal(false) для вашего маленького окна,

возможно, вы хотите что-то похожее на gimp, посмотрите на панель инструментов gimp, только X в заголовке означает, что это диалог.

надеюсь, это поможет

person shay    schedule 17.03.2011