Как установить цвет ярлыка (цветной текст) в Java?

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

myLabel.setText("Text Color: Red");
myLabel.???

Могу ли я иметь два отдельных цвета на одной метке?

Например:

"Text Color:" должен быть черным, а "Red" - красным.

Ответ 1

Конечно. Чтобы установить цвет переднего плана, просто используйте label.setForeground(Color.RED).

Для двухцветного вопроса. Например, вы можете использовать html в тексте ярлыка:

frame.add(new JLabel("<html>Text color: <font color='red'>red</font></html>"));

производит

enter image description here

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

Ответ 2

Вы можете установить цвет JLabel, изменив категорию переднего плана:

JLabel title = new JLabel("I love stackoverflow!", JLabel.CENTER);

title.setForeground(Color.white);

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

Ответ 3

JLabel label = new JLabel ("Text Color: Red");
label.setForeground (Color.red);

это должно работать

Ответ 4

object.setForeground(Color.green);

* любой цвет, который вы хотите * объект, объявленный ранее

Ответ 5

Просто хотел добавить к тому, что упоминалось выше @aioobe...

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

Возможно, вы захотите пройти через ниже и попробовать.

Jide OSS (находится в https://jide-oss.dev.java.net/) - это профессиональная библиотека с открытым исходным кодом с действительно хорошей суммой компонентов Swing готовы к использованию. У них значительно улучшенная версия JLabel с именем StyledLabel. Этот компонент прекрасно решает вашу проблему... Посмотрите, распространяется ли их лицензирование с открытым исходным кодом на ваш продукт или нет.

Этот компонент очень прост в использовании. Если вы хотите увидеть демонстрацию своих Swing Components, вы можете запустить их демоверсию WebStart, расположенную в www.jidesoft.com (http://www.jidesoft.com/products/1.4/jide_demo.jnlp). Все их предложения являются демонстрационными... и лучше всего то, что StyledLabel сравнивается с JLabel (HTML и без) с точки зрения скорости!: -)

Снимок экрана перфоманса можно увидеть на (http://img267.imageshack.us/img267/9113/styledlabelperformance.png)

Ответ 6

Один из недостатков использования HTML для меток - это когда вам нужно написать локализуемую программу (которая должна работать на нескольких языках). У вас возникнут проблемы с изменением только переведенного текста. Или вам придется поместить весь HTML-код в ваши переводы, что очень неудобно, я бы даже сказал абсурдно:)

gui_en.properties:

title.text=<html>Text color: <font color='red'>red</font></html>

gui_fr.properties:

title.text=<html>Couleur du texte: <font color='red'>rouge</font></html>

gui_ru.properties:

title.text=<html>Цвет текста: <font color='red'>красная</font></html>