Изменить цвет заголовка виджета группы в SWT - PullRequest
4 голосов
/ 19 августа 2011

У меня есть окно SWT, в котором есть виджет группы, в который я поместил пару других виджетов, я установил заголовок группы и все работает нормально.Цвет заголовка группы всегда синий (в моем случае я не уверен), и он не синхронизируется с другими детьми внутри группы. Так что мне интересно, есть ли способ изменить группу текст заголовка цвета шрифт есть ли способ?

Ответы [ 2 ]

5 голосов
/ 19 августа 2011

Изменить шрифт группы довольно просто, проверьте этот фрагмент (используется фрагмент из java2s.com )

//Send questions, comments, bug reports, etc. to the authors:

//Rob Warner (rwarner@interspatial.com)
//Robert Harris (rbrt_harris@yahoo.com)

import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;

/**
 * This class demonstrates groups
 */
public class GroupExample {
  public static void main(String[] args) {
    Display display = new Display();
    Shell shell = new Shell(display);
    shell.setLayout(new GridLayout());

    // Create the first group
    Group group1 = new Group(shell, SWT.SHADOW_IN);
    group1.setText("Who's your favorite?");
    group1.setLayout(new RowLayout(SWT.VERTICAL));
    group1.setFont(new Font(display, "Consolas", 10, SWT.BOLD));
    new Button(group1, SWT.RADIO).setText("John");
    new Button(group1, SWT.RADIO).setText("Paul");
    new Button(group1, SWT.RADIO).setText("George");
    new Button(group1, SWT.RADIO).setText("Ringo");

    // Create the second group
    Group group2 = new Group(shell, SWT.NO_RADIO_GROUP);
    group2.setText("Who's your favorite?");
    group2.setLayout(new RowLayout(SWT.VERTICAL));
    group2.setForeground(new Color(display, new RGB(255, 0, 0)));
    new Button(group2, SWT.RADIO).setText("Barry");
    new Button(group2, SWT.RADIO).setText("Robin");
    new Button(group2, SWT.RADIO).setText("Maurice");

    shell.open();
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch()) {
        display.sleep();
      }
    }
    display.dispose();
  }
}

Это обеспечивает такое поведение на W7

font change on group in W7

Но, как вы можете видеть, изменение цвета на setForeground(Color c) ничего не меняет, когда я ищу дополнительную информацию, я обнаружил сообщение об ошибке в SWZ bugzilla Цвет заголовкауправление группой не может быть изменено .Это ошибка, зависящая от платформы Windows.

1 голос
/ 10 сентября 2013

Но вы можете попробовать Группу без текста + виджет Label, это может быть решением, если вы просто хотите лучший графический интерфейс.

...