Меню

Как изменить цвет jlabel



Работаем с JLabel

JLabel это пожалуй самый простой компонент, который есть в Java Swing. С помощью JLabel можно показать текст с иконкой. Если нужен какой-то компонент, чтобы отобразить какое-то сообщение пользователю или сделать для поля ввода текстовую метку, или показать иконку — используем JLabel. Текст, который показывает JLabel выделять нельзя, только смотреть.

Для создания объекта JLabel, который затем будем располагать в окне, можно воспользоваться конструктором со строковым параметром public JLabel(String text). Строковый параметр — это текст, который будет показываться в JLabel. Кроме того текст, который будет отображаться в JLabel можно установить при помощи метода setText. Единственным параметром метода является строка отображаемого текста String.

JLabel позволяет настраивать шрифт, который будет использоваться для отображения текста. Установка шрифта происходит при помощи метода setFont класса JLabel. Этому методу в качестве параметра передается объект Font. Что мы хотим, когда указываем или создаем шрифт? Первое — это начертание, Verdana или Courier New, или другое. Второе — размер шрифта и третье — жирный будет шрифт или нормальный, или может быть курсив. Поэтому подходящий конструктор для Font это тот, который содержит сразу все три параметра — public Font(String name, int style, int size). Первый параметр, как уже ясно, это имя шрифта. Если параметр не задан, то используется шрифт по умолчанию. Второй параметр задает стиль — жирный, нормальный или курсив. Сюда необходимо передать одну из констант объекта Font — Font.BOLD (жирный), Font.PLAIN (нормальный или плоский) и Font.ITALIC (курсив). Ну и третий параметр — размер шрифта. Объект Font можно создать вот так:

Font font = new Font(«Verdana», Font.PLAIN, 11);

После установки текста и шрифта у JLabel иногда бывает нужно определить выравнивание текста по вертикали и горизонтали. Делается это при помощи двух методов setVerticalAlignment и setHorizontalAlignment соответственно. В качестве параметров для setVerticalAlignment нужно использовать что-то из следующего списка: JLabel.TOP (выравнивать по верхнему краю), JLabel.CENTER (по центру) и JLabel.BOTTOM (выравнивание по нижнему краю). Для метода setHorizontalAlignment параметров больше — JLabel.LEFT (по левому краю), JLabel.CENTER (по центру), JLabel.RIGHT (по правому краю), JLabel.LEADING и JLabel.TRAILING. Интересны последние две константы. Для языков, у которых написание текста идет слева направа JLabel.LEADING — это левый край, а JLabel.TRAILING — правый. Для языков, у которых написание происходит справа налева, JLabel.LEADING — это правый край, а JLabel.TRAILING — левый.

JLabel позволяет отображать иконку вместе с текстом. Для установки иконки используется метод setIcon. Единственный параметр метода — это объект Icon. Когда задана иконка для JLabel, то можно задать расположение текста относительно иконки. Для этого используются методы setVerticalTextPosition и setHorizontalTextPosition. В качестве параметров используются те же константы, что и при выравнивании текста.

Идем дальше. Шрифт мы выбрали. Теперь нужно определить, какого цвета будет текст у нашего JLabel. Делается это при помощи метода setForeground. Сюда нужно передать объект Color. Для создания Color можно воспользоваться разными конструкторами или вместо этого воспользоваться константами, которые определены в объекте Color. Здесь есть черный Color.BLACK, зеленый Color.GREEN, красный Color.RED и другие. Если нужно создать какой-то специфический цвет, то придется воспользоваться конструктором. Для меня, например, самый удобный public Color(int red, int green, int blue). Передаем сюда необходимые составляющие цвета и получаем то, что хотели. Ну а затем устанавливаем цвет у JLabel.

Читайте также:  Как получить светло русый пепельный цвет волос без рыжины

Кроме цвета шрифта можно задать цвет фона JLabel. Делается это с помощью метода setBackground. Интересный момент. По умолчанию, даже если цвет фона установлен, фон у JLabel не отображается. Для того, чтобы JLabel стал показывать фон необходимо вызвать метод setOpaque и передать туда true. Тем самым мы скажем JLabel, что хотим сделать непрозрачным его фон. Цвет фона задается аналогично цвету текста, то есть методу setBackground передается объект Color, который содержит информацию о цвете.

У JLabel, как и у других компонентов, можно устанавливать размеры. Делается это при помощи метода setPreferredSize. Сюда передается объект Dimension с требуемой шириной и высотой.

label.setPreferredSize(new Dimension(100, 100));

Еще одна особенность, про которую нужно обязательно рассказать — это использование HTML в качестве текста. К примеру, в тестовом приложении JLabel используется для того, чтобы показать краткое
описание Google Labs на английском языке.

По традиции тестовое приложение. Здесь я попытался продемонстрировать возможности на практике, о которых говорилось выше. На самой верхней панели можно увидеть результат работы с методами, устанавливающими выравнивание текста JLabel. Для того, чтобы было лучше видно выравнивание, я добавил к каждому JLabel черный border шириной в один пиксель. На средней панели — работа с позиционированием текста JLabel относительно иконки и наконец на самой нижней — использование HTML для отображения в JLabel текста. Внешний вид приложения представлен на рисунке ниже.

Источник

Как установить цвет фона JLabel?

в своем JPanel , Я установил фон JLabel к другому цвету. Я вижу слово «тест», и оно синее, но фон совсем не меняется. Как я могу заставить его показать?

4 ответов:

в противном случае фон не окрашен, так как по умолчанию opaque и false на JLabel .

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

для получения дополнительной информации, прочитайте учебник Java как использовать Этикетки.

фон JLabel прозрачен по умолчанию. Установите непрозрачность в true следующим образом:

вы должны установить setOpaque (true) в true иначе фон не будет окрашен в форму. Я думаю, что из чтения, что если он не установлен в true, что он будет рисовать некоторые или не любой из его пикселей в форме. Фон прозрачен по умолчанию, что кажется мне странным, по крайней мере, но в способе программирования вы должны установить его в true, как показано ниже.

для фона, убедитесь, что вы импортировали java.awt.Color в свой пакет.

в своем main метод, т. е. public static void main(String[] args) вызовите уже импортированный метод:

NB: установка непрозрачности повлияет на его видимость. Помните, чувствительность к регистру в Java.

Читайте также:  Какие цвета являются траурными

Источник

QLabel: установить цвет текста и фона

Как мне установить цвет текста и фона QLabel ?

Лучший и рекомендуемый способ — использовать Qt Style Sheet .

Чтобы изменить цвет текста и цвет фона QLabel , вот что я хотел бы сделать:

Вы также можете отказаться от использования таблиц стилей Qt и изменить QPalette цвет вашего QLabel , но вы можете получить разные результаты на разных платформах и / или стилях.

Как указано в документации Qt:

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

Но вы могли бы сделать что-то вроде этого:

Но, как я уже сказал, я настоятельно рекомендую не использовать палитру и перейти к Qt Style Sheet.

Вы можете использовать QPalette, однако вы должны setAutoFillBackground(true); включить цвет фона

Он отлично работает на Windows и Ubuntu, я не играл ни с какой другой ОС.

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

Я добавляю этот ответ, потому что думаю, что он может быть полезен для всех.

Я вступаю в проблему установки цветов RGBA (то есть цвета RGB со значением альфа- канала для прозрачности) для цветных меток отображения в моем приложении для рисования.

Когда я наткнулся на первый ответ, я не смог установить цвет RGBA. Я также пробовал такие вещи, как:

где color цвет RGBA.

Итак, мое грязное решение состояло в том, чтобы расширить QLabel и переопределить paintEvent() метод, заполняющий его ограничивающий прямоугольник.

Сегодня я открыл qt-assistant и прочел список свойств ссылок на стили . К счастью, у него есть пример, который гласит следующее:

Это поможет мне сделать что-то вроде приведенного ниже кода, например:

Обратите внимание, что setAutoFillBackground() установка в False не будет работать.

Источник

Как изменить цвет Label?

Вопросы

SIARHEI RAHOUSKI 0

SIARHEI RAHOUSKI 0

Как изменить цвет Label? не работает

Поделиться сообщением

Ссылка на сообщение

3 ответа на этот вопрос

Рекомендуемые сообщения

Присоединяйтесь к обсуждению

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

Похожий контент

Здравствуйте. У меня такая проблема.
Пытаюсь скачать файл:

var S : TMemoryStream; begin S := TMemoryStream.Create(); IdHTTP1.Get(‘http://sitename.com/7UlmBU7IXHA.jpg’, S); S.SaveToFile(‘/storage/emulated/0/ImageFile.jpg’); S.Free; end;
Проблема возникает на последней стадии — при сохранении файла. Android пишет, Cannot create file: ‘/storage/emulated/0/ImageFile.jpg’. Permission denied, то есть доступ запрещен. Но как его разрешить? Когда я устанавливаю приложение, система пишет, что никаких разрешений данная программа не требует.

Всем привет, с помощью Java2Op сделал обертку библиотеки получил модуль с интерфейсами.
Теперь сам вопрос в JavaInterfaces.pas есть описание:

JUsbManagerClass = interface(JObjectClass) [‘<1048A6E9-E1B5-4DA5-A168-ED91E8DE5284>‘] function _GetACTION_USB_ACCESSORY_ATTACHED: JString; cdecl; function _GetACTION_USB_ACCESSORY_DETACHED: JString; cdecl; function _GetACTION_USB_DEVICE_ATTACHED: JString; cdecl; function _GetACTION_USB_DEVICE_DETACHED: JString; cdecl; function _GetEXTRA_ACCESSORY: JString; cdecl; function _GetEXTRA_DEVICE: JString; cdecl; function _GetEXTRA_PERMISSION_GRANTED: JString; cdecl; function getAccessoryList: TJavaObjectArray ; cdecl;//Deprecated function openAccessory(accessory: JUsbAccessory): JParcelFileDescriptor; cdecl;//Deprecated function openDevice(device: JUsbDevice): JUsbDeviceConnection; cdecl;//Deprecated procedure requestPermission(device: JUsbDevice; pi: JPendingIntent); cdecl; overload;//Deprecated property ACTION_USB_ACCESSORY_ATTACHED: JString read _GetACTION_USB_ACCESSORY_ATTACHED; property ACTION_USB_ACCESSORY_DETACHED: JString read _GetACTION_USB_ACCESSORY_DETACHED; property ACTION_USB_DEVICE_ATTACHED: JString read _GetACTION_USB_DEVICE_ATTACHED; property ACTION_USB_DEVICE_DETACHED: JString read _GetACTION_USB_DEVICE_DETACHED; property EXTRA_ACCESSORY: JString read _GetEXTRA_ACCESSORY; property EXTRA_DEVICE: JString read _GetEXTRA_DEVICE; property EXTRA_PERMISSION_GRANTED: JString read _GetEXTRA_PERMISSION_GRANTED; end; [JavaSignature(‘android/hardware/usb/UsbManager’)] JUsbManager = interface(JObject) [‘<6F603A25-E816-4012-9B23-054B428A4A75>‘] function getDeviceList: JHashMap; cdecl;//Deprecated function hasPermission(device: JUsbDevice): Boolean; cdecl; overload;//Deprecated function hasPermission(accessory: JUsbAccessory): Boolean; cdecl; overload;//Deprecated procedure requestPermission(accessory: JUsbAccessory; pi: JPendingIntent); cdecl; overload;//Deprecated end; TJUsbManager = class(TJavaGenericImport ) end; Что бы получить доступ к методам интерфейса используется следующая конструкция:
JavaObject := TAndroidHelper.Context.getSystemService(TJContext.JavaClass.USB_SERVICE); FUsbManager := TJUsbManager.Wrap((JavaObject as ILocalObject).GetObjectID); теперь я могу получить доступ к методам JUsbManager, а как получить доступ к методам JUsbManagerClass
Вот пример кода на Java, который хочу реализовать в Delphi:
UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE); List availableDrivers = UsbSerialProber.getDefaultProber().findAllDrivers(manager); if (availableDrivers.isEmpty()) < return; >// Open a connection to the first available driver. UsbSerialDriver driver = availableDrivers.get(0); //Вот тут мы видим что из экземпляра класса мы вызываем openDriver, как это сделать в Delphi UsbDeviceConnection connection = manager.openDevice(driver.getDevice()); Как мы можем заметить этого метода в описании интерфейса нет, но есть в классе, как получить доступ к экземпляру класса?

Читайте также:  Кровля зеленого цвета какого цвета может быть сайдинг

Я недавно или давно писал по поводу почему компилятор при разном наборе USES увеличивает время компиляции где-то от 4 до 10 раз. То есть проект может компилируются за 10 секунд, а при небольших манипуляциях с USES станет компилироваться 40 секунд и тд. Очень хорошо заметно на большом проекте у меня с 1 минуты 18 секунд выросло время компила до 1 часа 40 минут.
Ну хватит предыстории после анализа зависимостей и проверки логов обращения к файловой системе был выяснен интересный факт 🙂
У меня в проекте появился UNIT в котором глобальные методы для так сказать конфигурирования внешнего вида компонентов (компоненты тоже самописные) и получилось следующая ситуация:
1. В UNIT с формой лежит один из визуальных компонентов назовем его TXXX
2. соответственно в первом (interface секции) USES данного модуля прописывается автоматом модуль из зависимостей компонента
3. В нижнем (implementation секции) USES расположен UNIT с глобальными методами (назовем его UNIT XXX) для так сказать конфигурирования его (установка бордера и другой дичи)
4. В этом UNIT XXX (interface секции) USES также прописаны модули этих визуальных компонентов для передачи их в методы как параметры.
Так вот из-за такой ошибочной связи время компила увеличивается в разы и по анализу project dependency увеличивается с более менее приемлемых (по времени компиляции) 200 до 500.
Из сходя из этого начала рефакторинг всего кода и переводить компоненты на интерфейсы это сокращает project dependency проекта и неплохо так, перевод одного компонента который используется почти везде в проекте на интерфейс сократил с 200 до 190 и время компила начала сокращаться.
Сори за много букавок, но может кому будет интересно или кто с толкнулся с такой проблемой.

Так же в решении и анализе взаимосвязей помог эксперт MMX.

Последние посетители 0 пользователей онлайн

Ни одного зарегистрированного пользователя не просматривает данную страницу

Источник