<MyRusakov.ru />

Программирование на C++ с Нуля до Гуру

Программирование на C++ с Нуля до Гуру

Данный курс научит Вас программировать на языке C++, который, несмотря на свой почтенный возраст, необычайно сильно востребован. Курс состоит из 6 разделов, посмотрев которые и выполнив все упражнения, Вы с нуля освоите этот язык и сможете создавать самые разные проекты любой сложности на C++.

Для закрепления материала из уроков к ним идёт множество упражнений.

Дополнительно к курсу идёт вспомогательная система, которая не даст Вам забросить начатое на полпути.

Также вместе с курсов Вы получаете Бонус "Программирование на C++ в Unreal Engine", в котором Вы научитесь создавать игры на C++ с использованием этого движка.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Зачем Вы изучаете программирование/создание сайтов?

Темы графического интерфейса в Java

Темы графического интерфейса в Java

При создании программ на Java, которые используют графический интерфейс для взаимодействия с пользователем, среда Java по-умолчанию предоставляет разработчику несколько версий тем графического интерфейса GUI, которые называются - Look and Feel.

Эти темы графического интерфейса содержат как стандартные темы GUI Java - Motif, так и платформенно-ориентированные темы, например Windows, Windows Classic (на Windows) или Gtk+ на Ubuntu.

Далее в примере кода ниже мы создадим приложение, тему которого мы будем менять динамически при нажатии на кнопку:

package com.example.lookandfeel;

// импортируем пакеты графической среды пользователя
import javax.swing.*;
import java.awt.*;

// для вывода отладочных сообщений в консоль
import static java.lang.System.out;

// главный класс приложения
public class Main
{

    // точка входа в приложение
    public static void main(String[] args)
    {
        // главное окно приложения
        JFrame frame = new JFrame("Переключатель тем");
        // при закрытии окна - заканчиваем работу приложения
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // создаем левую панель внутри окна размеров 100 на 100
        JPanel menuPanel = new JPanel();
        menuPanel.setSize(100, 200);

        JLabel label = new JLabel("Заголовок в левом меню");
        menuPanel.add(label);

        // панель с кнопками переключения тем
        JPanel contentPanel = new JPanel();


        // кнопки будут располагаться в сетке из 2 столбцов
        GridLayout grid  = new GridLayout(0,2, 5, 5);
        contentPanel.setLayout(grid);

        // отрисовываем кнопки со всеми доступным в системе темами оформления
        int buttonY = 20;
        for(UIManager.LookAndFeelInfo theme : UIManager.getInstalledLookAndFeels()) {

            JButton button = new JButton(theme.getName());
            button.setBounds(20, buttonY, 100, 30);

            // обработчик нажатия на кливишу
            // при нажатии на кнопку...
            button.addActionListener(action -> {

                try {
                    // ... меняем тему
                    UIManager.setLookAndFeel(theme.getClassName());
                    // обновляем интерфейс дерева компонентов
                    SwingUtilities.updateComponentTreeUI(frame);
                }
                catch (Exception exception) {
                    out.println(exception.getMessage());
                }

            });

            contentPanel.add(button);
            buttonY += 35;
        }

        // устанавливаем модель компоновки окна - модель расположения компонентов интерфейса
        frame.setLayout(new BorderLayout());

        // располагаем меню в левой стороне окна
        frame.add(menuPanel, BorderLayout.WEST);

        // блок с кнопками в правой строне
        frame.add(contentPanel, BorderLayout.EAST);

        // устанавливаем размер окна
        frame.setSize(500,350);

        // располагаем окно по центру экрана
        centrifyFrame(frame);

        // отображаем окно пользователю
        frame.setVisible(true);
    }


    /**
     * Получает размер экрана и устанавливает окно программы по центру
     *
     * @param frame {{@link JFrame}}
     */
    public static void centrifyFrame(JFrame frame)
    {
        Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
        frame.setLocation(dim.width / 2 - frame.getSize().width / 2, dim.height / 2 - frame.getSize().height / 2);
    }
}

При нажатии на клавиши в правой стороне окна, визуальный стиль компонентов окна будет меняться. Причем набор кнопок будет отличаться в зависимости от операционной системы и ранее установленный тем.

Таким образом, мы создали графическое приложение на Java, которое показывает базовые встроенные возможности среды.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

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

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.