В редакторе красок после завершения операции необходимо вставить

Обновлено: 01.07.2024

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

Вы можете использовать Редактор изображений для работы с разнообразными форматами текстур и изображений, которые используются при разработке приложений DirectX. Это включает в себя поддержку популярных форматов файлов изображений и цветовых кодировок, такие функции, как альфа-каналы и MIP-сопоставление, а также многие форматы текстур с высокой степенью сжатия и аппаратным ускорением, поддерживаемые DirectX.

Поддерживаемые форматы

Редактор изображений поддерживает следующие форматы изображений:

< tr>
Имя формата Расширение имени файла
Переносимая сетевая графика .jpg
JPEG .jpg, . jpg, .jpe, .jfif
Поверхность прямого рисования < em>.dds
Формат обмена изображениями .jpg
Bitmap .bmp, .dib
Формат файла изображения с тегами .tif, .tiff
TGA (Targa) .tga

Начать

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

Добавьте изображение в свой проект

В обозревателе решений откройте контекстное меню проекта, в который вы хотите добавить изображение, и выберите «Добавить» > «Новый элемент».

В диалоговом окне "Добавить новый элемент" в разделе "Установлено" выберите "Графика", а затем выберите подходящий формат файла для изображения.

Если вы не видите категорию «Графика» в диалоговом окне «Добавить новый элемент», вам может потребоваться установить компонент «Редактор изображений и 3D-моделей». Закройте диалоговое окно, а затем выберите «Инструменты» > «Получить инструменты и компоненты» в строке меню, чтобы открыть установщик Visual Studio. Выберите вкладку Отдельные компоненты, а затем выберите компонент Редакторы изображений и 3D-моделей в категории Игры и графика. Выберите «Изменить».

 Компонент редактора изображений и 3D-моделей

Информацию о том, как выбрать формат файла в соответствии с вашими требованиями, см. в разделе Выбор формата изображения.

Укажите имя файла изображения и место, где вы хотите его создать.

Нажмите кнопку "Добавить".

Выберите формат изображения

В зависимости от того, как вы планируете использовать изображение, одни форматы файлов могут оказаться более подходящими, чем другие. Например, некоторые форматы могут не поддерживать необходимую функцию, например прозрачность или определенный цветовой формат. Некоторые форматы могут не обеспечивать подходящее сжатие для запланированного вами изображения.

Следующая информация может помочь вам выбрать формат изображения, соответствующий вашим потребностям:

Растровое изображение (.bmp)

Формат растрового изображения. Формат несжатого изображения, поддерживающий 24-битный цвет. Растровый формат не поддерживает прозрачность.

Изображение GIF (.jpg)

Формат изображения Graphics Interchange Format (GIF). LZW-сжатый формат изображения без потерь, поддерживающий до 256 цветов. Не подходит для фотографий и изображений со значительным количеством цветовых деталей, но обеспечивает хорошие коэффициенты сжатия для малоцветных изображений с высокой степенью согласованности цветов.

Изображение в формате JPG (.jpg)

Формат изображения Объединенной группы экспертов по фотографии (JPEG). Формат изображения с высокой степенью сжатия и потерями, поддерживающий 24-битный цвет и подходящий для сжатия изображений общего назначения с высокой степенью согласованности цветов.

Изображение PNG (.jpg)

Формат изображения Portable Network Graphics (PNG). Умеренно сжатый формат изображения без потерь, поддерживающий 24-битный цвет и альфа-прозрачность. Он подходит как для естественных, так и для искусственных изображений, но не обеспечивает такого высокого коэффициента сжатия, как форматы с потерями, такие как JPG или GIF.

Изображение TIFF (.tif)

Формат изображения Tagged Image File Format (TIFF или TIF). Гибкий формат изображения, поддерживающий несколько схем сжатия.

Текстура DDS (.dds)

Формат текстуры DirectDraw Surface (DDS). Сильно сжатый формат текстуры с потерями, поддерживающий 24-битный цвет и альфа-прозрачность. Коэффициент сжатия может достигать 8:1. Он основан на сжатии текстур S3, которое можно распаковать на графическом оборудовании.

Изображение TGA (.tga)

Формат изображения Truevision Graphics Adapter (TGA) (также известный как Targa). RLE-сжатый формат изображения без потерь, который поддерживает как изображения с цветовой картой (цветовая палитра), так и изображения прямого цвета с 24-битным цветом и альфа-прозрачностью.Не подходит для фотографий и изображений со значительным количеством цветовых деталей, но обеспечивает хорошие коэффициенты сжатия для изображений с длинными диапазонами одинаковых цветов.

Настроить изображение

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

Прежде чем сохранить свою работу, обязательно установите свойство «Формат цвета», если вы хотите использовать определенный формат цвета. Если формат файла поддерживает сжатие, вы можете настроить параметры сжатия при первом сохранении файла или при выборе «Сохранить как».

Работа с редактором изображений

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

Команды, влияющие на состояние редактора изображений, расположены на панели инструментов режима редактора изображений вместе с дополнительными командами. Панель инструментов расположена вдоль самого верхнего края области конструктора редактора изображений. Инструменты рисования расположены на панели инструментов редактора изображений вдоль крайнего левого края области конструктора редактора изображений.

Панель инструментов режима редактора изображений

Редактор изображений панель инструментов режима в Visual Studio

В следующей таблице описаны элементы на панели инструментов режима редактора изображений, которые перечислены в порядке их появления слева направо:

Зеленый канал

Синий канал

Шахматная доска
Использует зеленый цвет вместе с указанным цветом фона для отображения фона в виде шахматной доски. Вы можете использовать этот параметр, чтобы сделать прозрачные части изображения более заметными.

Белый фон
Использует белый цвет для отображения фона.

Черный фон
Использует черный цвет для отображения фона.

Фильтры

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

Графические движки

Визуализация с помощью D3D11
Использует Direct3D 11 для визуализации поверхности конструктора редактора изображений.

Рендеринг с помощью D3D11WARP
Использует Direct3D 11 Windows Advanced Rasterization Platform (WARP) для рендеринга рабочей поверхности редактора изображений.

Инструменты

Отразить по горизонтали
Перемещает изображение вокруг его горизонтальной оси или оси x.

Отразить по вертикали
Перемещает изображение вокруг его вертикальной оси или оси Y.

Создать MIP
Создает уровни MIP для изображения. Если уровни MIP уже существуют, они воссоздаются из самого большого уровня MIP. Любые изменения, внесенные в меньшие уровни MIP, теряются. Чтобы сохранить созданные вами уровни MIP, вы должны использовать формат .dds для сохранения изображения.

Просмотр

Панель инструментов редактора изображений

Панель инструментов редактора изображений

В следующей таблице описаны элементы на панели инструментов редактора изображений, которые перечислены в порядке их появления сверху вниз:

Работа с уровнями MIP

Некоторые форматы изображений, например DirectDraw Surface (.dds), поддерживают уровни MIP для уровня детализации пространства текстур (LOD). Сведения о том, как создавать уровни MIP и работать с ними, см. в разделе Практическое руководство. Создание и изменение уровней MIP

Работа с прозрачностью

Некоторые форматы изображений, например DirectDraw Surface (.dds), поддерживают прозрачность. Существует несколько способов использования прозрачности в зависимости от используемого инструмента. Чтобы указать уровень прозрачности для выбора цвета, в окне "Свойства" задайте компонент A (альфа) выбора цвета.

В следующей таблице описано, как различные виды инструментов управляют применением прозрачности:

Свойства изображения

В окне "Свойства" можно указать различные свойства изображения. Например, вы можете установить свойства ширины и высоты, чтобы изменить размер изображения.

В следующей таблице описаны свойства изображения:

Свойство Описание
Ширина Ширина изображения.
Высота Высота изображения.
Бит на Пиксель Количество битов, представляющих каждый пиксель. Значение этого свойства зависит от цветового формата изображения.
Прозрачное выделение True, чтобы смешать слой выделения с основным изображением на основе на альфа-значении слоя выбора; в противном случае Ложь. Этот элемент доступен только для изображений, поддерживающих альфа-канал.
Format Цветовой формат изображения.Вы можете указать различные цветовые форматы, в зависимости от формата изображения. Цветовой формат определяет количество и тип цветовых каналов, включенных в изображение, а также размер и кодировку различных каналов.
Уровень Mip Активный уровень MIP. Этот элемент доступен только для текстур с уровнями MIP.
Количество уровней MIP Общее количество уровней MIP в изображении. Этот элемент доступен только для текстур с уровнями MIP.
Frame Count Общее количество кадров в изображении. Этот элемент доступен только для изображений, поддерживающих массивы текстур.
Frame Текущий кадр. Можно просмотреть только первый кадр; все остальные кадры теряются при сохранении изображения.
Счетчик фрагментов глубины Общее количество фрагментов глубины в изображении. Этот элемент доступен только для изображений, поддерживающих объемные текстуры.
Срез глубины Текущий срез глубины. Можно просмотреть только первый фрагмент; все остальные фрагменты теряются при сохранении изображения.

Изменить размер изображений

Есть два способа изменить размер изображения. В обоих случаях редактор изображений использует билинейную интерполяцию для передискретизации изображения.

В окне "Свойства" укажите новые значения свойств "Ширина" и "Высота".

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

Выбранные регионы

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

Большинство инструментов («Карандаш», «Кисть», «Аэрограф», «Заливка», «Ластик» и 2D-примитивы) и преобразований («Поворот», «Обрезка», «Инвертировать цвета», «Отразить по горизонтали» и «Отразить по вертикали») ограничиваются или определяются активным выделением. Однако на некоторые инструменты («Пипетка» и «Текст») и трансформации («Создать мипы») никакое активное выделение не влияет. Эти инструменты всегда ведут себя так, как будто все изображение является активным выделением.

Когда вы выбираете регион, вы можете нажать и удерживать клавишу Shift, чтобы сделать пропорциональный (квадратный) выбор. В противном случае выбор не ограничен.

Изменить размер выделения

После того, как вы выберете область, вы можете изменить ее размер или содержимое изображения, изменив размер маркера выбора. При изменении размера выбранной области вы можете использовать следующие клавиши-модификаторы, чтобы изменить поведение выбранной области при изменении ее размера:

Ctrl – копирует содержимое выделенной области перед изменением ее размера. При этом исходное изображение остается нетронутым при изменении размера копии.

Shift – изменяет размер выбранной области пропорционально исходному размеру.

Alt — изменяет размер области выделения. Это оставляет изображение без изменений.

В следующей таблице описаны допустимые комбинации клавиш-модификаторов:

< tbody>
Ctrl Shift Alt Описание
Изменяет размер содержимого выбранной области.
Shift Пропорционально изменяет размер содержимого выбранной области.
Alt Изменяет размер выбранной области. Это определяет новую область выбора.
Shift Alt Пропорционально изменяет размер выбранной области. Это определяет новую область выделения.
Ctrl Копирует и затем изменяет размер содержимого выбранной области.
Ctrl Shift Копирует и затем пропорционально изменяет размер содержимого выбранной области.

Свойства инструмента

Когда инструмент выбран, вы можете использовать окно "Свойства", чтобы указать сведения о том, как он влияет на изображение. Например, можно задать толщину инструмента "Карандаш" или цвет инструмента "Кисть".

Вы можете установить как цвет переднего плана, так и цвет фона. Оба поддерживают альфа-канал для обеспечения определяемой пользователем непрозрачности. Настройки применяются ко всем инструментам. Если вы используете мышь, левая кнопка мыши соответствует цвету переднего плана, а правая кнопка мыши соответствует цвету фона.

В следующей таблице описаны свойства инструмента:

Value
Текст, который нужно нарисовать.

Шрифт
Шрифт, используемый для рисования текста.

Размер
Размер текста.

Жирный
Делает шрифт жирным.

Курсив
Выделение шрифта курсивом.

Толщина
Определяет толщину линии, образующей границу примитива.

Радиус X
(только прямоугольник со скругленными углами) Определяет радиус скругления для верхнего и нижнего краев примитива.

Paint 3D – это встроенное приложение для творчества, бесплатно поставляемое с Windows 10*.Он разработан, чтобы быть простым, но мощным, позволяя вам создавать профессиональные или забавные творческие проекты, легко комбинируя инструменты 2D и 3D. Самое приятное то, что вам не нужен опыт проектирования — Paint 3D может использовать любой. Доступный интерфейс позволяет легко настраивать существующие 3D-модели из нашей встроенной 3D-библиотеки или создавать 3D-проекты с нуля.

Начало работы: основная навигация в Paint 3D

 Краска 3D

  • Кисти. Расширьте свои художественные возможности с помощью уникальных ручек и кистей, которые имитируют реальные материалы без беспорядка. Попробуйте прозрачную акварель, которая красиво омывает холст, или масляную живопись настолько реалистично, что вы можете видеть, как краска смазывается. Эти художественные кисти работают как на холсте, так и на 3D-моделях с профессиональными эффектами, такими как полированный металл и матовость, чтобы персонализировать ваши проекты.
  • 2D-фигуры. С нашей коллекцией 2D-фигур и инструментом "Линия и кривая" легко рисовать идеальные фигуры. Используйте контрольные круги, чтобы изменить кривизну на нужный угол. Вы также можете нажать «Создать 3D», чтобы превратить фигуру в слой с дополнительными параметрами поворота.
  • 3D-фигуры. Есть много способов начать работу в 3D. Используйте готовые формы, чтобы быстро приступить к созданию новой модели, или используйте инструмент 3D-рисунков, чтобы мгновенно превратить ваши 2D-наброски в 3D-модели. Просто обведите дизайн по фотографии или нарисуйте одну свободную руку и наблюдайте, как он мгновенно превращается в 3D-модель. 3D-каракули с острыми краями создают четкие линии, идеально подходящие для рисования звезды. Трехмерный рисунок с плавными краями создает мягкую кривую, идеально подходящую для рисования облака.
  • Наклейки. Это уникальный и простой способ добавить текстуру вашим творениям. Используйте этот инструмент, чтобы поэкспериментировать с такими материалами, как дерево или мрамор, или загрузите свою фотографию, чтобы создать наклейку с собственной текстурой. Он мгновенно оборачивает 3D-объекты — никаких предварительных знаний о 3D не требуется! Вы также можете настроить прозрачность стикера.
  • Текст: добавьте слова, используя наши параметры 2D- и 3D-текста. 2D-текст привяжет текст к холсту, а 3D-текст позволит вам перемещать его по холсту и вращать в разных направлениях.
  • Эффекты: создавайте уникальные настроения, такие как успокаивающий туман или загадочная ночь, изменяя окружающую среду и освещение в своих 3D-сценах. Вы даже можете вращать солнце вокруг светового колеса, чтобы изменить направление освещения.
  • Холст. Этот цифровой холст имитирует холст художника. Эта вкладка позволяет изменять размер и управлять размерами, включая отключение 2D-холста, чтобы вы могли свободно создавать свою 3D-модель.
  • Волшебный выбор. Простой в использовании инструмент, позволяющий выбрать часть изображения, которую нужно вырезать, и удалить ее с фона. Инструмент мгновенно и почти волшебным образом перенесет ваш выбор на другой слой и интеллектуально автоматически заполнит фон, чтобы скрыть любые пробелы.
  • 3D-библиотека**: просмотрите наш огромный каталог с тысячами бесплатных 3D-моделей, которые вы можете редактировать. Выберите из наших заранее подготовленных коллекций, чтобы быстро приступить к работе, или найдите нужную модель на панели инструментов поиска. Одним касанием вы можете мгновенно импортировать 3D-модель в свой проект и сразу же приступить к перекрашиванию и настройке.
  • Ползунок истории: вы можете отменить и перемотать все свои действия, это похоже на неограниченную кнопку отмены! Ползунок истории записывает каждое изменение в сцене и позволяет прокручивать время назад. Вы даже можете снять видео процесса проектирования и поделиться им с друзьями, нажав кнопку "Начать запись".
  • Режим 3D-просмотра: позволяет перемещаться и просматривать контент под любым углом. Есть также элементы управления, помогающие увеличивать и уменьшать масштаб холста с возможностью ввода точной величины масштаба.
  • Смешанная реальность. Эта функция берет вашу 3D-модель из Paint 3D и запускает ее в приложении Mixed Reality Viewer, чтобы вы могли визуализировать 3D-модель в контексте реального мира. Вы можете сфотографировать или записать короткое видео трехмерного объекта, взаимодействующего с вашим миром, и поделиться им с друзьями.

Paint 3D позволяет легко раскрыть свой творческий потенциал и воплотить свои идеи в жизнь. Чтобы проверить эти функции самостоятельно, вы можете начать работу, открыв приложение Paint 3D. Если вы новичок в Paint 3D, ознакомьтесь со всей серией руководств по Paint 3D здесь или ознакомьтесь с дополнительными руководствами по Paint 3D здесь.

*Чтобы получить доступ ко всем новейшим функциям Paint 3D, вам необходимо установить последнее обновление Windows 10 от апреля 2018 года. Чтобы узнать, как получить обновление Windows 10 за апрель 2018 г., ознакомьтесь с этой записью в блоге.

**3D-библиотека доступна на некоторых рынках. Ознакомьтесь с онлайн-библиотекой здесь.

JComboBox , который позволяет пользователю выбрать один из нескольких вариантов, может иметь две совершенно разные формы. Форма по умолчанию — это нередактируемое поле со списком, в котором есть кнопка и раскрывающийся список значений. Вторая форма, называемая редактируемым полем со списком, содержит текстовое поле с небольшой кнопкой, примыкающей к нему. Пользователь может ввести значение в текстовое поле или нажать кнопку для отображения раскрывающегося списка. Вот как выглядят две формы полей со списком в интерфейсе Java:

Поля со списком занимают мало места на экране, а их редактируемая форма (текстовое поле) позволяет пользователю быстро выбрать значение, не ограничивая его отображаемыми значениями. Другими компонентами, которые могут отображать один из многих вариантов, являются группы переключателей и списки. Группы радиокнопок, как правило, легче всего понять пользователям, но поля со списком могут быть более подходящими, когда пространство ограничено или доступно несколько вариантов. Списки не очень привлекательны, но они больше подходят, чем поля со списком, когда количество элементов велико (скажем, более 20) или когда выбор нескольких элементов может быть допустимым.

Поскольку редактируемые и нередактируемые поля со списком очень разные, в этом разделе они рассматриваются отдельно. В этом разделе рассматриваются следующие темы:

Использование нередактируемого поля со списком

Нередактируемое поле со списком

    Нажмите кнопку «Запустить», чтобы запустить демо-версию ComboBox с помощью Java™ Web Start (загрузите JDK 7 или более позднюю версию). В качестве альтернативы, чтобы скомпилировать и запустить пример самостоятельно, обратитесь к указателю примеров.

Следующий код, взятый из ComboBoxDemo.java , создает нередактируемое поле со списком и настраивает его:

Это поле со списком содержит массив строк, но вы также можете легко использовать вместо него значки. Чтобы поместить что-либо еще в поле со списком или настроить внешний вид элементов в поле со списком, вам нужно написать собственный модуль визуализации. Для редактируемого поля со списком также потребуется собственный редактор. Информацию и пример см. в разделе Предоставление пользовательского средства визуализации.

Предыдущий код регистрирует прослушиватель действий в поле со списком. Чтобы увидеть реализацию прослушивателя действий и узнать о других типах прослушивателей, поддерживаемых полем со списком, см. раздел Обработка событий в поле со списком.

Независимо от того, какой конструктор вы используете, поле со списком использует модель поля со списком для содержания элементов своего меню и управления ими. Когда вы инициализируете поле со списком массивом или вектором, поле со списком создает для вас объект модели по умолчанию. Как и в случае с другими компонентами Swing, вы можете частично настроить поле со списком, реализуя пользовательскую модель — объект, который реализует интерфейс ComboBoxModel.

Будьте осторожны при реализации пользовательской модели для поля со списком. Методы JComboBox, которые изменяют элементы в меню поля со списком, такие как insertItemAt, работают, только если модель данных реализует интерфейс MutableComboBoxModel (подинтерфейс ComboBoxModel). Обратитесь к таблицам API, чтобы узнать, какие методы затронуты.

Еще один момент, на который следует обратить внимание — даже для нередактируемых полей со списком — это обеспечение того, чтобы ваша настраиваемая модель запускала события данных списка при изменении данных или состояния поля со списком. Даже неизменяемые модели полей со списком, данные которых никогда не меняются, должны запускать событие данных списка (событие CONTENTS_CHANGED) при изменении выбора. Один из способов бесплатно получить код запуска события данных списка — сделать модель поля со списком подклассом AbstractListModel .

Обработка событий в поле со списком

Вот код из ComboBoxDemo.java, который регистрирует и реализует прослушиватель действий в поле со списком:

Этот прослушиватель действий получает новый выбранный элемент из поля со списком, использует его для вычисления имени файла изображения и обновляет метку для отображения изображения. Поле со списком запускает событие действия, когда пользователь выбирает элемент из меню поля со списком. Общие сведения о реализации прослушивателей действий см. в разделе Как написать прослушиватель действий.

Поля со списком также генерируют события элементов, которые запускаются при изменении состояния выбора любого из элементов.В поле со списком может быть выбран только один элемент за раз, поэтому, когда пользователь делает новый выбор, ранее выбранный элемент становится невыбранным. Таким образом, два события элемента запускаются каждый раз, когда пользователь выбирает другой элемент в меню. Если пользователь выбирает один и тот же элемент, события элемента не запускаются. Используйте addItemListener, чтобы зарегистрировать прослушиватель элементов в поле со списком. Как написать прослушиватель элементов дает общую информацию о реализации прослушивателей элементов.

Несмотря на то, что JComboBox наследует методы для регистрации обработчиков низкоуровневых событий — например, фокуса, клавиш и событий мыши, — мы рекомендуем не прослушивать низкоуровневые события в поле со списком. И вот почему: Поле со списком — это составной компонент, состоящий из двух или более других компонентов. Поле со списком само запускает события высокого уровня, такие как события действий. Его подкомпоненты запускают низкоуровневые события, такие как события мыши, клавиши и фокуса. Низкоуровневые события и подкомпонент, который их запускает, зависят от внешнего вида. Чтобы избежать написания кода, зависящего от внешнего вида, следует прослушивать только высокоуровневые события составного компонента, такого как поле со списком. Сведения о событиях, включая обсуждение событий высокого и низкого уровня, см. в статье Написание прослушивателей событий.

Использование редактируемого поля со списком

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

Редактируемое поле со списком

    Нажмите кнопку «Запуск», чтобы запустить демо-версию ComboBox2 с помощью Java™ Web Start (загрузите JDK 7 или более позднюю версию). В качестве альтернативы, чтобы скомпилировать и запустить пример самостоятельно, обратитесь к указателю примеров.

Следующий код, взятый из ComboBoxDemo2.java, создает и настраивает поле со списком:

Этот код очень похож на предыдущий пример, но требует пояснений. Строка кода, выделенная жирным шрифтом, явно включает редактирование, чтобы пользователь мог вводить значения. Это необходимо, поскольку по умолчанию поле со списком недоступно для редактирования. Этот конкретный пример позволяет редактировать поле со списком, поскольку его меню не предоставляет все возможные шаблоны форматирования даты, а только ярлыки для часто используемых шаблонов.

Редактируемое поле со списком запускает событие действия, когда пользователь выбирает элемент в меню и когда пользователь нажимает Enter. Обратите внимание, что меню остается неизменным, когда пользователь вводит значение в поле со списком. При желании вы можете легко написать прослушиватель действий, который добавляет новый элемент в меню поля со списком каждый раз, когда пользователь вводит уникальное значение.

См. Интернационализация, чтобы узнать больше о форматировании дат и других типов данных.

Предоставление пользовательского средства визуализации

Визуализатор по умолчанию знает, как отображать строки и значки. Если вы помещаете другие объекты в поле со списком, средство визуализации по умолчанию вызывает метод toString, чтобы предоставить строку для отображения. Вы можете настроить способ отображения поля со списком и его элементов, внедрив собственный ListCellRenderer .

Вот изображение приложения, которое использует поле со списком с пользовательским модулем визуализации:

Поле со списком с пользовательским средством визуализации

Нажмите кнопку «Запустить», чтобы запустить демонстрацию CustomComboBox с помощью Java™ Web Start (загрузите JDK 7 или более позднюю версию). Кроме того, чтобы скомпилировать и запустить пример самостоятельно, обратитесь к указателю примеров.

Полный исходный код для этого примера находится в CustomComboBoxDemo.java. Чтобы получить необходимые файлы изображений, обратитесь к указателю примеров.

Следующие операторы из примера создают экземпляр ComboBoxRenderer (пользовательский класс) и настраивают экземпляр в качестве средства визуализации поля со списком:

Последняя строка задает максимальное количество строк в поле со списком, которое определяет количество элементов, видимых при отображении меню. Если количество элементов в поле со списком превышает максимальное количество строк, в меню появляется полоса прокрутки. Значки довольно большие для меню, поэтому наш код ограничивает количество строк до 3. Вот реализация ComboBoxRenderer, средства визуализации, которое размещает значок и текст рядом:

Как ListCellRenderer, ComboBoxRenderer реализует метод с именем getListCellRendererComponent, который возвращает компонент, чей метод paintComponent используется для отображения поля со списком и каждого из его элементов. Самый простой способ отобразить изображение и значок — использовать метку. Итак, ComboBoxRenderer является подклассом label и возвращает сам себя. Реализация getListCellRendererComponent настраивает средство визуализации для отображения текущего выбранного значка и его описания.

Эти аргументы передаются в getListCellRendererComponent :

  • Список JList — объект списка, используемый за кулисами для отображения элементов.В примере используются цвета этого объекта для настройки цветов переднего плана и фона.
  • Значение объекта — отображаемый объект. Целое число в этом примере.
  • int index — индекс отображаемого объекта.
  • boolean isSelected — указывает, выбран ли объект для визуализации. Используется в примере, чтобы определить, какие цвета использовать.
  • boolean cellHasFocus — указывает, находится ли объект для визуализации в фокусе.

Обратите внимание, что поля со списком и списки используют один и тот же тип средства визуализации — ListCellRenderer . Вы можете сэкономить время, разделив средства визуализации между полями со списком и списками, если это имеет смысл для вашей программы.

API поля со списком

В следующих таблицах перечислены часто используемые конструкторы и методы JComboBox. Другими методами, которые вы, скорее всего, будете вызывать для объекта JComboBox, являются те, которые он наследует от своих суперклассов, таких как setPreferredSize. Таблицы часто используемых унаследованных методов см. в API JComponent.

API для использования полей со списком делится на две категории:

Редактируемое поле со списком
Редактируемое поле со списком
Нередактируемое поле со списком , до (вверху)
и после нажатия кнопки
Редактируемое поле со списком, до и после
нажатия кнопки со стрелкой
Установка или получение элементов в меню полей со списком
Метод Цель
JComboBox()
JComboBox(ComboBoxModel)
JComboBox(Object[])
JComboBox(Vector)
Создать поле со списком с указанными элементами в его меню. Поле со списком, созданное с помощью конструктора по умолчанию, изначально не имеет элементов в меню. Каждый из других конструкторов инициализирует меню своим аргументом: объектом модели, массивом объектов или вектором объектов.
void addItem(Object )
void insertItemAt(Object, int)
Добавить или вставить указанный объект в меню поля со списком. Метод вставки помещает указанный объект в указанный индекс, тем самым вставляя его перед объектом, который в настоящее время находится в этом индексе. Эти методы требуют, чтобы модель данных поля со списком была экземпляром MutableComboBoxModel .
Object getItemAt(int)
Object getSelectedItem()
Получить элемент из меню поля со списком.
void removeAllItems()
void removeItemAt(int)
void removeItem(Object)
Удалить один или несколько элементов из меню поля со списком. Эти методы требуют, чтобы модель данных поля со списком была экземпляром MutableComboBoxModel .
int getItemCount() Получить количество элементов в меню поля со списком.
void setModel(ComboBoxModel)
ComboBoxModel getModel()
Установить или получить модель данных, которая предоставляет элементы в меню поля со списком.
void setAction(Action)
Action getAction()
Установите или получите действие, связанное с полем со списком. Дополнительную информацию см. в разделе Как использовать действия.
Настройка работы поля со списком
Метод или конструктор Назначение
void addActionListener(ActionListener) Добавить действие прослушиватель поля со списком. Метод слушателя actionPerformed вызывается, когда пользователь выбирает элемент из меню поля со списком или, в редактируемом поле со списком, когда пользователь нажимает Enter.
void addItemListener(ItemListener) Добавить прослушиватель элемента в поле со списком. Метод прослушивателя itemStateChanged вызывается при изменении состояния выбора любого из элементов поля со списком.
void setEditable(boolean)
boolean isEditable( )
Установить или получить, может ли пользователь вводить текст в поле со списком.
void setRenderer(ListCellRenderer)
ListCellRenderer getRenderer()
Установить или получить объект, отвечающий за отрисовку выбранного элемента в поле со списком. Средство визуализации используется только в том случае, если поле со списком недоступно для редактирования. Если поле со списком доступно для редактирования, вместо этого для рисования выбранного элемента используется редактор.
void setEditor(ComboBoxEditor)
ComboBoxEditor getEditor()
Установить или получить объект, отвечающий за рисование и редактирование выбранного элемента в поле со списком. Редактор используется только тогда, когда поле со списком доступно для редактирования. Если поле со списком недоступно для редактирования, вместо этого для рисования выбранного элемента используется средство визуализации.

Примеры использования полей со списком

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

Не нужно быть опытным фоторедактором, чтобы превратить фотографии в захватывающее цифровое искусство. Почему? Потому что для этого есть Prisma!С фоторедактором Prisma легко раскрыть в себе художника и перейти от обычной фотографии к завораживающему редактированию за считанные секунды!

Призма, признанная приложением года в 2016 году, имеет постоянно растущее сообщество, насчитывающее более 120 миллионов пользователей по всему миру. Prisma предоставляет множество функций как для общего редактирования фотографий, так и для редактирования селфи. Загрузите Prisma и позвольте технологии искусственного интеллекта превратить ваши фотографии в произведение искусства!

ОБШИРНАЯ БИБЛИОТЕКА СТИЛЕЙ

В библиотеке Prisma вас ждут более 500 различных стилей. Новые стили будут появляться ежедневно, чтобы вы могли украсить свой творческий потенциал. Вы также можете попробовать портретные стили, специально разработанные для создания захватывающих селфи.

•Среди лучших инструментов Prisma для персонализации фотографий стоит упомянуть функцию портретной сегментации. Этот важный инструмент для селфи позволяет не только добавлять стиль ко всему изображению, но и применять его отдельно к человеку или фону.

• Еще один способ улучшить свои фотографии, не прилагая особых усилий к процессу редактирования, – использовать яркие рамки, которые дополнят абсолютно любую вашу фотографию.

• И вишенка на торте — функция Prisma для редактирования фона. С помощью этого инструмента вы можете заменить фон любого селфи! Вы можете выбрать фон из красочных шаблонов или выбрать любой другой из галереи вашего телефона.

ВСЕ ПРЕИМУЩЕСТВА В ОДНОМ ПЛАНЕ

Подписка Prisma Premium дает доступ к любому стилю без исключения и позволяет сохранять фотографии в HD качестве!

Перед покупкой подписки вы можете БЕСПЛАТНО попробовать Prisma в течение 3 дней. Затем вы можете выбрать один из нескольких планов подписки с одинаковым набором функций. Единственная разница заключается во временном интервале для каждого плана.

———————————————
Премиум-подписка Prisma:

Платеж будет снят с учетной записи iTunes при подтверждении покупки. Подписка продлевается автоматически, если автоматическое продление не будет отключено по крайней мере за 24 часа до окончания текущего периода. С аккаунта будет взиматься плата за продление в течение 24 часов до окончания текущего периода и указана стоимость продления. Пользователь может управлять подписками, а автоматическое продление можно отключить, перейдя в настройки учетной записи пользователя после покупки. Любая неиспользованная часть бесплатного пробного периода, если она предлагается, будет аннулирована, когда пользователь приобретет подписку на эту публикацию, где это применимо.

Читайте также: