Java распашная оконная рама - PullRequest
1 голос
/ 25 марта 2011

Как манипулировать оконной рамой с качелями в java?Например, как изменить цвет, как сделать так, чтобы он не был стилем темы ПК по умолчанию, а был изображением, например?

Ответы [ 3 ]

1 голос
/ 25 марта 2011

Чтобы изменить цвет, вы можете использовать метод setBackground (Color c) для объекта кадра или объекта панели. Пример:

JFrame fr=new JFrame("Color demo");
fr.setBackground(Color.red);  // color set to red
fr.setSize(900,200);          // size changed
fr.setResizable(false);       // you cant resize your window now

Для дальнейшей настройки вашего java-фрейма вы можете выполнить this или this . Вы можете начать качаться на на этом сайте

0 голосов
/ 25 марта 2011

Все, что связано с тем, как окна выглядят в Swing, может обрабатываться Look and Feel (LaF). См. тег LaF для получения дополнительной информации (я написал это). Большинство элементов внешнего вида будут стилизовать содержимое окна и все компоненты внутри него.

В JDK есть ряд стандартных LaF, которые поставляются с Swing. Они включают в себя, Motif, Metal и Synth (это пустой стиль, который вы настраиваете сами). Есть много других, которые вы можете найти и скачать онлайн. Вы можете использовать любой из них, поместив их в classpath и запустив UIManager.setLookAndFeel(...) в своем основном методе, прежде чем показывать свой графический интерфейс.

Звучит так, будто вы специально ищете способ настройки оконных рам, а это не часто делается. Я лично не рекомендовал бы это, но если вы действительно хотите, вы можете отключить декорации рамок, вызвав setUndecorated(true) на Window. Затем вы остаетесь с окном без границ. Затем вы должны решить, как вы хотите повторно реализовать нужные функции окна, например, закрытие с помощью специальной кнопки закрытия.

0 голосов
/ 25 марта 2011

Как я знаю, это невозможно сделать.Вы можете создать собственный класс для ваших пользовательских окон, который расширяет JWindow, например.Вы можете создать стиль самостоятельно тогда.Это всего лишь небольшая работа.

// add pacakge and imports as needed...

/**
 * Sample class implementation for windows with own frame style.
 * Additional constructors may be added as needed. Default constructor used
 * to show principle.
 */
public class MyWindow extends JWindow {
    public MyWindow() {
        super();
        initUI();
    }   

    private void initUI() {
        setLayout(new BorderLayout());
        add(new MyWindowFrameTop(this));
        add(new MyWindowFrameLeft(this));
        add(new MyWindowFrameRight(this));
        add(new MyWindowFrameBottom(this));
    }
}

JWindow - «первоклассный гражданин», как рассказывает документ по API Java.Это полнофункциональное окно на рабочем столе, но оно пропускает все реализации для действий с окнами, таких как закрытие, максимизация, сворачивание и меню окна.Реализация этих функций может быть добавлена, как описано выше, с использованием BorderLayout и введением в действие собственных реализаций объектов фрейма.Объектами MyWindowFrameXXX могут быть JPanels, которые рисуют требуемые части рамки, изображение заголовка и так далее.Также возможно добавить кнопки для действий окна и реализовать действия мыши для изменения размера.Чтобы реализовать это, объектам фрейма нужна ссылка на родительские окна для выполнения всех действий с окном.

Было бы далеко уйти, чтобы написать все здесь.Я думаю, что принцип показан, и я также не знаю, какой на самом деле эффект будет реализован.

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