Удаление строки заголовка фрейма с сохранением механизма изменения размера - Java - PullRequest
1 голос
/ 12 января 2011

Моя проблема связана с тем, что спросил Йонас по следующим темам:

Как добавить поддержку изменения размера при использовании неокрашенного JFrame?

Как настроить строку заголовка в JFrame?

Я хочу создать собственное окно без родной строки заголовка. Это можно сделать, позвонив по номеру:

setUndecorated(true);

Однако это также устраняет механизм изменения размера. Так что теперь я использую следующий код:

 public UndecoratedFrame() {
 this.getRootPane().setWindowDecorationStyle(JRootPane.FRAME);
    menu.add(item);
    menuBar.add(menu);
    this.setJMenuBar(menuBar);
    this.setUndecorated(true);
    this.getRootPane().setBorder(border);
    this.setSize(400,340);
    this.setVisible(true);
}

Это возвращает окно, подобное этому: http://www.roseindia.net/java/example/java/swing/CreateJList.shtml (Рассмотрим только строку заголовка и границы)

Как удалить верхнюю строку заголовка, не удаляя декоратор для изменения размера? Или я должен настроить строку заголовка по умолчанию? Как я могу сделать это простым способом?

Идея состоит в том, чтобы заканчивать рамку только с ее границами (и изменение размера работает ..). Затем я могу создать собственную строку заголовка с JPanel и кнопками, запускающими события закрытия, минимизации и т. Д. ОС.

Заранее спасибо за вашу поддержку.

1 Ответ

2 голосов
/ 12 января 2011

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

Другой вариант заключается в использовании общего уровня JIDE - он предоставляет несколько реализаций своего интерфейса ResizableSupport, включая ResizableFrame, который выполняетчто вы описываете.

http://www.jidesoft.com/javadoc/com/jidesoft/swing/ResizableFrame.html

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