Как добавить любой компонент в заголовок панели JFrame - PullRequest
1 голос
/ 08 марта 2012

Как добавить любой компонент, например JButton, на панель заголовков JFrame в java swing.

1 Ответ

3 голосов
/ 08 марта 2012

Я предполагаю, что под «строкой заголовка» вы видите заголовок с кнопкой меню окна, заголовком документа или программы и кнопками (типично) максимизации, минимизации, закрытия.

Границы окна рисуются операционной системой (независимо от того, какая часть, например, с XServer, в большинстве случаев это будет оконный менеджер) - обычно. И это то, что пользователь хочет - обычно. Тогда эта часть окна находится вне досягаемости Swing, вам нужно добавить компоненты с помощью собственного кода (JNI или одной из его более приятных оболочек, таких как JNA).

Но вы можете установить Frame на неокрашенный с помощью setUndecorated. Это оставляет всю область окна под вашей ответственностью, вы должны рисовать все сами и заботиться о таких вещах, как перетаскивание окна. Подумайте о полностью «кожаном» приложении. Если используемый вами внешний вид поддерживает рисование границ окон (javax.swing.LookAndFeel#getSupportsWindowDecorations()), вам не нужно делать это самостоятельно, а устанавливать JFrame.setDefaultLookAndFeelDecorated(), LookAndFeel будет рисовать границу с компонентами Swing. Затем вы можете добавить компоненты Swing либо по стеклу, либо изменив компонент, который рисует строку заголовка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...