SWT Java: как изменить цвет текста в элементе управления Label? - PullRequest
9 голосов
/ 12 октября 2011

Я знаю, как изменить размер, стиль, но как я могу установить цвет текста в элементе управления Label?Вот мой код:

Label myLabel = new Label(shell, SWT.NONE);
myLabel.setText("some text that needs to be for example green");
FontData[] fD = myLabel.getFont().getFontData();
fD[0].setHeight(16);
fD[0].setStyle(SWT.BOLD);
myLabel.setFont( new Font(display,fD[0]));

Я вижу, что в классе FontData нет свойства цвета.

Ответы [ 2 ]

23 голосов
/ 12 октября 2011

Убедитесь, что вы не смешиваете цвета SWT и AWT, и если вы строите объект Color, убедитесь, что вы его утилизируете. Вы хотите что-то вроде:

final Color myColor = new Color(getDisplay(), 102, 255, 102);
myLabel.setForeground(color);
myLabel.addDisposeListener(new DisposeListener() {
    public void widgetDisposed(DisposeEvent e)
    {
        myColor.dispose();
    }
});

Или вы можете просто использовать встроенную систему цветов:

myLabel.setForeground(getDisplay().getSystemColor(SWT.COLOR_GREEN));

(Не выбрасывайте системные цвета.)

2 голосов
/ 12 октября 2011
myLabel.setForeground(Color fg).

color: класс Color используется для инкапсуляции цветов в цветовом пространстве sRGB по умолчанию или цветов в произвольных цветовых пространствах, идентифицированных ColorSpace.*

Для зеленого это было бы что-то вроде: myLabel.setForeground(new org.eclipse.swt.graphics.Color(getDisplay(), 102, 255, 102));

...