Графика для JVM / Хабр
Допустим, я хочу создавать качественные десктопные приложения. Я также хочу сделать это на JVM. Не надейтесь — мы еще не достигли цели. Но у меня есть план.
Почему именно JVM?
Это производительность на достаточно высоком уровне, но не заставляет вас слишком много задумываться о каждом выделение памяти. Это кроссплатформенно. В нем есть отличные языки — Kotlin, Scala и, конечно же, Clojure. C # тоже подойдет, но в нем нет Clojure.
Разве вы уже не можете создавать десктопные приложения на JVM?
Вы можете. Но традиционно AWT, Swing и JavaFX сопровождались множеством недостатков в качестве и производительности. Они были настолько существенными, что только одной компании удалось создать прилично выглядящее приложение на Swing. Это возможно, но требует огромных усилий.
Разве не все пользовательские интерфейсы Java прокляты?
Нет, не совсем. У AWT, Swing и JavaFX есть свои проблемы, но это исключительно их проблемы. Нет фундаментальной причины, по которой невозможно создать высококачественный пользовательский интерфейс на JVM. Просто это еще не было сделано.
Почему это еще не было сделано?
Почему не Electron?
Первая причина — производительность. JS — отличный язык для создания пользовательского интерфейса, но он намного медленнее, чем JVM. Wasm может быть быстрым, но подразумевает C ++ или Rust.
Второй — это модель DOM. Это ужасающая коллекция уловок, которые делают простые вещи сложными, а сложные — невозможными. Я много раз думал: «Если бы я рисовал этот элемент управления/макет напрямую, я бы закончил несколько часов назад».
Это означает, что существует очень низкий предел возможностей веб-приложений с точки зрения производительности и качества. Я считаю, что мы можем и должны добиться большего.
Однако Electron научил нас двум хорошим вещам:
- Люди жаждут нативных приложений. Никто не хочет работать из браузера.
- Людей не волнует, что приложения не выглядят нативными для платформы, если они хорошо выглядят.
Десктоп по-прежнему актуален?
Я верю, что это так!
Недавно я смотрел интервью между разработчиком Android и разработчиком iOS. Один спрашивал:
«Кто-нибудь по-прежнему пишет десктопные приложения?»
На что другой ответил:
«Понятия не имею… Может быть?»
Оба они записывали его на десктопе, в десктопном приложении, во время разговора через другое десктопное приложение. Вероятно, для пост-обработки использовалось несколько других десктопных приложений. Ни один из них не был написан волшебными эльфами и не оставлен нам могущественной древней цивилизацией. Десктоп может быть менее модным, но только потому, что здесь труднее продавать бесполезную хрень.
И я был на обеих сторонах. Однажды я жил без десктопа несколько недель. К этому привыкаешь, но это, конечно, не идеал. Сбор и обработка любой информации очень болезненны: сложно выделить текст, сложно выполнить поиск на странице, сложно иметь несколько вкладок, сложно перемещать данные между приложениями. Например, вы добавляете событие в календарь. Вам нужно найти адрес события в почте, где есть ссылка, открывающая браузер. К тому времени, когда вы нашли то, что вам нужно, и вернули в календарь, оно уже выгружается из памяти, и весь контекст теряется. Возможность одновременного открытия нескольких окон — это суперспособность десктопа.
Телефоны отлично подходят для небольших быстрых одноцелевых задач. У них есть свое место, но жизнь намного сложнее, чем телефон. Многим из нас все еще нужен этот велосипед для ума.
Хорошо, что же ты предлагаешь?
Путь к качественному пользовательскому интерфейсу на JVM — долгий.
Нам понадобятся:- графическая библиотека,
- библиотека интеграции окна / ОС,
- набор инструментов пользовательского интерфейса.
Сегодня я рад анонсировать первую часть этого эпического квеста: графическую библиотеку. Она называется Skija и представляет собой просто набор привязок к очень мощной, хорошо известной библиотеке Skia. Та, которую поддерживает Chrome, Android, Flutter и Xamarin.
Как и любая другая библиотека JVM, она кроссплатформенная. Она работает в Windows, Linux и macOS. Это так же просто, как добавить файл JAR. Намного проще, чем массировать флаги компилятора C ++ в течение нескольких дней, прежде чем вы сможете что-либо скомпилировать. Skija позаботится об управлении памятью за вас. И привязки создаются вручную, поэтому они всегда имеют смысл и доставляют удовольствие (по крайней мере, насколько позволяет Skia API).
Что с этим делать? В основном рисовать. Линии. Треугольники. Прямоугольники. Но также: кривые, контуры, формы, буквы, тени, градиенты.
Думайте об этом как о Canvas API. Но вроде бы действительно продвинутой версии. Она понимает цветовые пространства, современную типографику, макет текста, ускорение графического процессора и тому подобное.
О, и это быстро. Действительно быстро. Если этого достаточно для Chrome, вероятно, этого будет достаточно и для вашего приложения.
Что я могу с этим сделать?
Много вещей! Пользовательские библиотеки виджетов пользовательского интерфейса и целые наборы инструментов, графики, диаграммы, визуализации, игры. Например, мы поигрались с реализацией java.awt.Graphics2D и запуском Swing поверх него — похоже, все работает нормально.
Зачем выпускать отдельную графическую библиотеку? Чем это полезно?
Я не большой поклонник объединять все в одном месте. Вы никогда не сможете угадать все детали правильно — кто-то всегда будет недоволен конкретным решением.
Независимые взаимозаменяемые библиотеки более гибкие. Философия Unix.
Что с остальной кусочками паззла?
Обе вещи находятся в разработке в JetBrains.
- Для интеграции управления окнами и ОС есть Skiko. Она говорит, что это Skia для Kotlin, но она также реализует создание окон, события, пэкэджинг и все остальное. Она даже интегрируется с AWT и Swing.
- А для инструментария пользовательского интерфейса есть Compose Desktop. Это форк Android Compose, декларативного UI-фреймворка, работающего в десктопной среде.
Но прелесть в том, что это даже не обязательно эти двое!
Не нравится AWT? Принесите свою собственную библиотеку окон.
Kotlin не подходит Вам? Используйте любой другой язык JVM.
И, конечно, если вы хотите развернуть свою собственную библиотеку окон или набор инструментов для виджетов — пожалуйста, сделайте это! Мы надеемся, что это произойдет.
В заключение
Skija — это часть более широкой картины. Прогресс пользовательского интерфейса Java был заблокирован некачественной Graphics2D. Но все меняется. Что из этого выйдет? Время покажет.
Пожалуйста, попробуйте Skija и поделитесь с нами своим мнением. Или, может быть, начните ей пользоваться — мы были бы счастливы, если бы вы это сделали! Вот ссылка:
github.com/JetBrains/skija
14 ноября 2020 · Обсуждение на HackerNews
Облачные серверы от Маклауд быстрые и безопасные.
Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!
Кафедра ИАНИ факультета ВМК ННГУ
Основателем и первым руководителем кафедры ИАНИ был выдающийся ученый, Заслуженный профессор ННГУ, Заслуженный деятель науки РФ, Руководитель (основатель) ведущей научно педагогической школы «Оптимизация в системах автоматизации проектирования и автоматизированных систем управления» доктор технических наук, профессор Батищев Дмитрий Иванович (1941 – 2012 г. г.) Д.И.Батищев В 1963 году окончил радиофизический факультет Горьковского государственного университета. В 1968 году защитил диссертацию на соискание степени кандидата физико-математических наук по специальности «вычислительная математика», в 1976 году — диссертацию на соискание степени доктора технических наук по специальности «автоматизация проектно-конструкторских работ и технологической подготовки производства». Работал в должности доцента по кафедре «Математическая логика и алгебра», профессора по кафедре «Математическое обеспечение ЭВМ». С 1986 года по 2011 год заведующий кафедрой. Награжден медалями «За доблестный труд», «За трудовое отличие», нагрудным знаком «За отличные успехи в работе». Научный руководитель 27 кандидатов наук, 9 докторов наук, опубликовал более 200 научных работ, 5 монографий, 1 учебник, 7 учебных пособий. Кафедра информатики и автоматизации научных исследований была организована на факультете ВМК в 1986 году в целях повышения качества подготовки специалистов, интенсификации и координации НИР в области информатики и автоматизации научных исследований на основе комплексного применения вычислительной техники. Кафедра ИАНИ является базовой кафедрой по направлению подготовки и специальности «Прикладная информатика». В соответствии с российской системой высшего профессионального образования обучение на кафедре осуществляется по следующим уровням подготовки:
Преподаватели кафедры ведут на дневном отделении 50 общих семестровых и 17 специальных курсов. На вечернем отделении – 11 общих и 9 специальных курсов. Сотрудники кафедры ИАНИ осуществляют активную научную деятельность, принимают участие в работе вузовских, всероссийских и международных конференций. Регулярно проводятся кафедральные научные семинары. Основные области исследований сотрудников кафедры включают:
САПР. Создание кафедры. Заслушав и обсудив сообщение руководителя УНЦ прикладной математики и кибернетики доц. Сергиевского А.В. об организации на факультете вычислительной математики и кибернетики Горьковского госу-дарственного университета кафедры «Информатики и автоматизации научных исследований», Совет отмечает, что в целях повышения качества подготовки специалистов, интенсификации и координации НИР в области информатики и автоматизации научных исследований на основе комплексного применения вычислительной техники целесообразно организовать на факультете ВМК кафедру «Информатики и автоматизации научных исследований», которая должна стать методическим центром по указанным вопросам в ГГУ и регионе. Совет постановляет:
Выписка верна Выписка из протокола №8 заседания Совета факультета ВМК Горьковского госуниверситета от 24 сентября 1985 г.
Слушали: доклад декана факультета ВМК проф. Р. Г. Стронгина «О подготовке специалистов в области информатики и автоматизации (научные исследования, проектирование и управление) на основе комплексного применения вычислительной техники».
|
6 корпус ННГУ, в котором находится кафедра ИАНИ Подробную информацию о кафедре можно узнать из презентации. Новости17.11.2015 Сотрудники кафедры ИАНИ поздравляют Михаила Куликова и его руководителя Михаила Хаимовича Прилуцкого с утверждением кандидатской диссертации. 08.05.2015 Сотрудники кафедры ИАНИ поздравляют Константина Дикарева и его руководителя М. Х.Прилуцкого с утверждением кандидатской диссертации. Поздравляем!!! Поздравляем Михаила Сергеевича Куликова и его научного руководителя Михаила Хаимовича Прилуцкого с успешной защитой кандидатской диссертации! Поздравляем! Коллектив кафедры ИАНИ сердечно поздравляет Афраймовича Льва Григорьевича с утверждением Высшей Аттестационной Комиссией его докторской диссертации! Поздравляем! Поздравляем Константина Дикарева и его научного руководителя Прилуцкого М.Х. с успешной защитой кандидатской диссертации! Поздравляем! Поздравляем Льва Григорьевича Афраймовича и его консультанта Прилуцкого Михаила Хаимовича с успешной защитой докторской диссертации “Потоковые методы решения многоиндексных задач транспортного типа” по специальности 01.01.09 “Дискретная математика и математическая кибернетика” в Совете ВЦ РАН” Кафедра ИАНИ. Дорожная карта Документ Отчет по публикациям кафедры ИАНИ за 2014 год Отчет 2014 |
Java GUI Design с использованием SWT/Swing в MyEclipse
1. Что такое SWT/Swing Designer?
SWT/Swing Designer — это дизайнер Java GUI, который позволяет очень легко создавать приложения Java GUI, не тратя много времени на написание кода для отображения простых форм. С помощью визуального конструктора WYSIWYG вы можете создавать сложные окна за считанные минуты, и для вас будет создан код Java. Вы можете легко добавлять элементы управления с помощью перетаскивания, добавлять обработчики событий к своим элементам управления, изменять различные свойства элементов управления с помощью редактора свойств, интернационализировать свое приложение и многое другое. Сгенерированный код не требует дополнительных пользовательских библиотек для компиляции и запуска, а SWT может реконструировать большинство написанных вручную кодов дизайна Java GUI.
Редактор состоит из следующих компонентов:
- Design View – основная визуальная область макета.
- Представление исходного кода – напишите код и просмотрите сгенерированный код
- Представление структуры – состоит из дерева компонентов и панели свойств.
Дерево компонентов – показывает иерархическую взаимосвязь между всеми компонентами.
Панель свойств — отображает свойства и события выбранных компонентов. - Палитра – обеспечивает быстрый доступ к компонентам набора инструментов.
- Панель инструментов – предоставляет доступ к часто используемым командам.
- Контекстное меню – обеспечивает доступ к часто используемым командам.
Редактор также предлагает следующие основные функции:
- Двунаправленная генерация кода – чтение и запись почти любого формата и обратное проектирование большинства рукописных кодов
- Интернационализация (i18n)/локализация – экстернализовать строки компонентов, создавать пакеты ресурсов и управлять ими.
- Пользовательские композиты и панели – создание пользовательских повторно используемых компонентов.
- Фабрики – создание пользовательских классов и методов фабрик.
- Visual Inheritance – создание иерархии визуальных компонентов.
- Обработка событий – добавьте обработчики событий в свои компоненты.
- Редактирование меню – визуальное создание и редактирование строк меню, пунктов меню и всплывающих меню.
- Морфинг – преобразование одного типа компонента в другой.
Swing Designer содержит инструменты, необходимые для создания окон, форм и других элементов пользовательского интерфейса.
Swing Designer
2. Создание элемента пользовательского интерфейса
Работа с SWT/Swing Designer начинается с создания нового класса элементов пользовательского интерфейса как части вашего проекта. Выберите «Файл»> «Создать»> «Другое», разверните WindowBuilder и выберите один из множества компонентов. Продолжайте работу с мастером, чтобы заполнить сведения об элементе.
Выбор элемента пользовательского интерфейса для создания
После завершения работы мастера и создания элемента пользовательского интерфейса открывается Swing Designer, позволяющий спроектировать элемент в представлении «Дизайн» или «Исходный код».
2.1 Выбор менеджера макетов
При написании Java-приложений вы можете использовать макеты, чтобы придать своим окнам особый вид. Макет управляет положением и размером дочерних элементов в контейнере. Классы Layout являются подклассами абстрактного класса Layout. Как SWT, так и Swing предоставляют несколько стандартных классов компоновки, и вы можете написать собственные классы компоновки. Другие наборы инструментов пользовательского интерфейса встраивают неявные менеджеры компоновки в каждый тип панели.
В Java позиционирование и изменение размера не происходит автоматически. Приложения могут принять решение об изменении размера и размещении дочерних элементов контейнера изначально или в прослушивателе изменения размера. Другой вариант — указать класс макета для размещения и размера дочерних элементов. Если детям не указан размер, они имеют нулевой размер и их нельзя увидеть.
Менеджер компоновки устанавливает размеры и расположение компонентов на основе различных факторов, таких как:
- Правила компоновки менеджера компоновки
- Настройки свойств менеджера компоновки, если таковые имеются
- Данные компоновки, связанные с каждым компонентом
- Размер контейнера
Каждый менеджер компоновки имеет свои сильные и слабые стороны. Макеты на основе сетки и макеты на основе ограничений являются наиболее полезными и мощными из стандартных макетов, но они также и самые сложные. При использовании представления «Дизайн» вы можете изменить макет в любое время. Инструмент корректирует код по мере необходимости на лету. Измените макет либо путем явного добавления диспетчера макетов в исходный код контейнера, либо путем выбора макета для композита в области конструктора с помощью инструмента «Макет» на палитре.
3. Представление «Дизайн»
Представление «Дизайн» — это ваш виртуальный блокнот. Вы можете добавлять или удалять компоненты, редактировать свойства макета, напрямую редактировать метки и видеть, как выглядит ваш общий дизайн по мере его развития.
Редактирование дизайна формы
Выберите компонент в представлении «Дизайн», чтобы он появился в представлении «Свойства», где вы можете редактировать его свойства. Это также активирует маркеры выбора для компонента. Дескрипторы выбора позволяют изменять свойства макета выбранного элемента управления, а для некоторых менеджеров макетов также свойства макета родственных элементов управления. Все свойства, которые можно изменить в представлении «Дизайн», также можно изменить в представлении «Свойства». В зависимости от используемого менеджера компоновки заголовки строк и столбцов могут отображаться в области заголовков.
Щелкните компонент правой кнопкой мыши, чтобы получить доступ к тому же контекстному меню, которое доступно в дереве компонентов. Вы можете добавлять компоненты, выбирая их на палитре, и удалять их, нажимая клавишу Delete .
3.1 Выбор компонентов
Используйте инструмент «Выделение» в палитре, чтобы выбрать один или несколько виджетов. Удерживайте нажатой клавишу Shift или CTRL , чтобы выбрать несколько виджетов.
Выбор компонентов
Используйте инструмент Marquee на палитре, чтобы выделить несколько виджетов резинкой. Держите ALT и перетащите, чтобы автоматически активировать инструмент выделения.
Выделение с помощью инструмента Marquee
3.2 Редактирование текста компонента
Существует быстрый способ редактирования текстовых свойств кнопок (включая флажки и переключатели), меток, текстовых полей, групп и столбцов таблицы. Сначала выберите компонент в представлении «Дизайн» и нажмите клавишу пробела , чтобы открыть поле редактирования, в котором вы можете установить свойство текста компонента.
Редактирование текста компонента
3.3 Перемещение компонентов
При перемещении компонента в представлении «Дизайн» обеспечивается обратная связь при перетаскивании, которая зависит от менеджера компоновки. В компоновке с ориентацией по осям x,y, такой как абсолютная компоновка, активный компонент отображается движущимся с всплывающей подсказкой, показывающей его текущее местоположение. Динамические точки привязки/выравнивания обеспечивают удобство выравнивания компонента с другими компонентами или краем окна.
Перемещение компонентов в X, Y-ориентированном макете
В макетах, ориентированных на сетку, отображается различная обратная связь в зависимости от того, над какой ячейкой находится указатель. Если указатель находится над открытой ячейкой, ячейка выделяется зеленым цветом, а указатель показывает зеленую галочку. Если указатель находится над границей строки или столбца, граница строки или столбца выделяется желтым цветом, указывая на то, что будет вставлена новая строка или столбец. Если указатель находится над заполненной ячейкой, эта ячейка выделяется красным, а указатель показывает красный знак минус.
Перемещение компонентов в макете, ориентированном на сетку
3.4 Изменение размера компонентов
При изменении размера компонента в представлении «Дизайн» предоставляется информация о размере, зависящая от менеджера макетов. В макете с ориентацией по осям x, y, таком как абсолютный макет, схема нового размера отображается с всплывающей подсказкой, показывающей его текущий размер. Динамические точки привязки/выравнивания обеспечивают удобство выравнивания компонента с другими компонентами или краем окна. Изменение размера компонента также привязывается к предпочтительному размеру компонента с измененным размером или к размеру (вертикальному или горизонтальному) любого другого компонента того же родителя.
Изменение размера в макете, ориентированном на x,y
В макетах, ориентированных на сетку, изменение размера компонента приводит к тому, что он занимает более одной строки или столбца. Во время операции изменения размера ячейки, которые будут заняты компонентом, выделяются зеленым цветом.
Изменение размера в макете, ориентированном на сетку
4. Представление «Исходный код»
В представлении «Исходный код» вы пишете код вручную и просматриваете код, сгенерированный инструментом разработки графического интерфейса пользователя Java. Представление «Исходный код» — это стандартный редактор Java со следующими функциями:
- Подсветка синтаксиса
- Помощь по содержимому/коду
- Форматирование кода
- Помощь при импорте
- Быстрое исправление
- Встроенные функции отладки
Положение исходного кода 900 исходное представление относительно Представление дизайна. По умолчанию они находятся на отдельных вкладках с пометками «Источник» и «Дизайн» (вы можете выбрать, какая страница будет первой). Предусмотрены дополнительные параметры для отображения представления «Исходный код» и представления «Дизайн» рядом или друг над другом.
Представления рядом друг с другом
Представления с накоплением
Получите доступ к настройке макета редактора, выбрав «Окно»> «Настройки» и выбрав «WindowBuilder».
Установка предпочтения макета редактора
5. Представление структуры
Представление структуры состоит из дерева компонентов и представления свойств. В дереве компонентов отображается иерархическая связь между всеми компонентами в представлении «Дизайн», а в представлении «Свойства» отображаются свойства и события выбранных элементов управления, а также текстовые поля, списки и другие элементы управления, в которых можно редактировать свойства, метки и события.
Положение представления «Структура» можно настроить с помощью перетаскивания или щелчка правой кнопкой мыши по заголовку представления «Структура» и выбора пункта «Закрепить в меню».
Настройка положения стыковки
Вы можете закрепить представление «Структура» сверху, снизу, слева или справа от представления «Дизайн».
Позиции стыковки
Представление структуры также доступно как отдельное представление. Выберите «Окно»> «Показать представление»> «Другое», разверните WindowBuilder и выберите «Структура» или щелкните правой кнопкой мыши представление «Структура» и выберите «Извлечь как представление». Закрытие автономного представления структуры возвращает представление в положение по умолчанию, встроенное в редактор.
Отсоединение вида структуры
5.1 Дерево компонентов
Дерево компонентов показывает иерархическую взаимосвязь между всеми компонентами в представлении «Дизайн».
Дерево компонентов
Каждый компонент в дереве показывает свой значок (с потенциальными декораторами), имя переменной и текстовую метку. Компоненты могут быть представлены как локальные переменные или поля, а имена переменных должны быть уникальными в пределах области, в которой определен компонент.
Декораторы значков используются для указания того, определяет ли компонент события или предоставляется как общедоступный компонент пользовательского контейнера.
Значок | Декоратор Имя | Описание |
0 90 | Дочерние виджеты, представленные в пользовательском контейнере. | |
Событие | Компоненты с одним или несколькими определенными обработчиками событий. |
Разверните компоненты в дереве с помощью значка «Развернуть все» и сверните их с помощью значка «Свернуть все».
Щелкните правой кнопкой мыши запись в дереве, чтобы получить доступ к тому же контекстному меню, которое доступно в представлении «Дизайн». Вы можете упорядочивать компоненты в дереве, перетаскивая их, а также удалять с помощью клавиши Удалить .
Вы можете выбрать несколько компонентов в дереве, удерживая нажатой клавишу CTRL для добавления отдельных выборок или клавишу SHIFT для добавления смежных выборок.
5.2 Представление свойств
В представлении свойств отображаются свойства и события выбранных компонентов, а также текстовые поля, списки и другие элементы управления, для которых можно редактировать свойства и события. Выберите элемент управления в дереве компонентов или в представлении «Дизайн», чтобы отобразить его свойства в представлении «Свойства».
Представление свойств
При выборе нескольких элементов управления все их общие свойства отображаются в представлении свойств. Если выбранные элементы управления не имеют одинакового значения свойства, поле свойства в представлении свойств будет пустым.
По умолчанию в окне свойств отображаются обычные свойства. Предпочтительные свойства выделены жирным шрифтом, а экспертные свойства — курсивом (щелкните значок «Показать дополнительные свойства», чтобы отобразить их). Серый фон означает, что для свойства задано значение по умолчанию, а белый фон означает, что для свойства установлено значение, отличное от значения по умолчанию. Щелкните значок «Восстановить значение по умолчанию», чтобы вернуть свойству значение по умолчанию.
Вы можете выбрать свойство, щелкнув заголовок или значение свойства. Когда свойство выбрано, вместо значения отображается редактор, поэтому вы можете изменить его значение. В большинстве редакторов свойств следует использовать Enter для применения значения и ESC для возврата к предыдущему значению. Если вы выбрали свойство, вы можете использовать клавиши со стрелками для перемещения между свойствами.
Представление «Свойства» поддерживает простые свойства, такие как строки и целые числа, а также сложные свойства, состоящие из нескольких других свойств, таких как макеты и данные макетов. Сложные свойства отображаются со знаком плюс или минус перед заголовком. Вы можете разворачивать/сворачивать сложные свойства несколькими способами:
- Дважды щелкните заголовок или значение свойства
- Щелкните знак плюс или минус
- Выберите свойство и нажмите клавишу плюс, чтобы развернуть, клавишу минус, чтобы свернуть
Некоторые свойства, такие как строки, цвета, шрифты и изображения, предоставьте редактор настраиваемых свойств, доступ к которому можно получить, нажав кнопку «Дополнительно» .
Состояние свойства (развернутое или свернутое) сохраняется между выборами элементов управления. Если вы развернете свойство «стиль» для одного элемента управления, а затем выберете другой элемент управления, свойство «стиль» останется развернутым, поэтому вы можете быстро изменить значение стиля для нескольких свойств без необходимости разворачивать его снова и снова. Как только вы решите, что вам не нужно менять стиль, вы можете свернуть свойство «стиль» и оставить место для других свойств.
Представление «Свойства» поддерживает свойства выбора, т. е. свойства, значения которых следует выбирать из некоторого списка. Например, таким свойством является свойство «тип» сложного свойства «стиль» для кнопок. Вы можете изменить его значение следующими способами:
- Дважды щелкните значение свойства, чтобы изменить значение на следующее значение в списке (или первое значение, если текущее значение является последним)
- Выберите свойство и нажмите Пробел , чтобы развернуть список, а затем используйте стрелки, чтобы изменить значение
- Выберите свойство и нажмите Удалить , чтобы изменить значение на значение по умолчанию.
Щелкните правой кнопкой мыши представление Свойства, чтобы открыть контекстное меню панели свойств.
6. Палитра инструментов
Палитра обеспечивает быстрый доступ к компонентам набора инструментов, а также к пользовательским компонентам, которые вы можете установить. Палитра организована по категориям, которые можно разворачивать, сворачивать или скрывать.
Чтобы добавить компоненты в представление «Дизайн», вы можете:
- Выберите его в палитре и перетащите на холст дизайна или в дерево компонентов, щелкнув в нужном месте.
- Используйте команду «Выбрать компонент», чтобы выбрать тип виджета в окне «Выбрать компонент».
Вы можете добавить несколько виджетов одного типа в представление «Дизайн», удерживая клавишу CTRL при выборе виджета в палитре.
Вы можете настроить палитру, щелкнув правой кнопкой мыши в любом месте палитры, чтобы получить доступ к контекстному меню палитры, или открыв Диспетчер палитры из контекстного меню.
Следующие команды являются общими для каждой палитры:
- Выбор
- Выделение
- Выбрать компонент
- Порядок вкладок
Общие команды палитры
6 33 909Название меню | Описание | |
Выбор | Выберите один или несколько виджетов. Удерживайте нажатой клавишу Shift или CTRL , чтобы выбрать несколько виджетов. | |
Бегущая строка | Резиновая лента для выбора нескольких виджетов. Удерживайте клавишу ALT и начните перетаскивать, чтобы автоматически активировать инструмент Marquee. | |
Выбрать компонент | Добавляет компонент в редактор. Введите название класса или выберите его из списка истории. Вы можете щелкнуть правой кнопкой мыши элемент в списке, чтобы удалить его из истории.
| |
Порядок вкладок | Устанавливает порядок вкладок компонентов.
|
Положение палитры можно настроить с помощью перетаскивания или щелчка правой кнопкой мыши на заголовке палитры и выбора пункта Закрепить в меню. Палитру можно прикрепить к левой или правой стороне представления «Дизайн».
Изменение положения палитры
Вы также можете свернуть или развернуть палитру.
Свернутая палитра
Палитра также доступна как отдельный вид. Выберите «Окно»> «Показать представление»> «Другое», разверните WindowBuilder и выберите «Палитра» или щелкните правой кнопкой мыши палитру и выберите «Извлечь как представление». Закрытие автономного представления Палитра возвращает представление в положение по умолчанию, встроенное в редактор.
Отсоединение палитры
java-gui-application · Темы GitHub · GitHub
Вот 121 публичный репозиторий соответствует этой теме.
..ТоталКросс / тоталкросс
Звезда 209cbozan / система регистрации работодателей
Звезда 33Маркотромбино / FXRouter
Звезда 32венкатвкпт / Mobile-Store-Billing-Software
Звезда 17Джонвк / CSU22012-DSA-групповой проект
Звезда 12Саурабх2999 / Крестики-нолики
Звезда 12прахаршджайн / Менеджер загрузки
Звезда 11теанасуддин / Канцтовары-Магазин-Управление
Звезда 7Прадюман7 / Тост за Java
Звезда 6Джеймс-ЦюХаоран / BigTwoGame-с поддержкой сети
Звезда 6юсуфсефазезер / Java-качели-контакт
Звезда 6АюшПрадхан9 / Интегрированная система управления библиотекой
Звезда 5себоянко / MovieOrganizer
Звезда 5cbozan / простой игровой движок
Звезда 5Берей / java-флэппи-птичья игра
Звезда 4Ямарибджамал / RedBlackTree-GUI
Звезда 4барисмераль / java-шрифт-диалог
Звезда 4Давидчан125 / PearsonsCorrelationCoefficientCalculator
Звезда 4Кайю / Генератор классов SQL и Java
Звезда 3БатуханСеремет / заказ напитков
Звезда 3Улучшить эту страницу
Добавьте описание, изображение и ссылки на java-gui-приложение страницу темы, чтобы разработчикам было легче узнать о ней.