SWT/JFace: как установить шрифт на StatusLine? Windowbuilder сломан?

Я новичок в SWT. Есть две проблемы, которые заняли 3 дня: поиск, поиск и поиск. Это хороший способ узнать о новых вещах, но я полностью озадачен следующими двумя постоянными проблемами.

Вопрос первый.

public class SWTMN extends ApplicationWindow
{
    public final static Display d = new Display() ;

    public SWTMN()
        {
            super(null);
            Util.getImageRegistry() ;

            addMenuBar();
            addStatusLine();

... и так далее. Позже...

'SetStatus("This works fine!") ;  // Works fine!!

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

Вопрос второй.

Использование новой установки Eclipse Indigo (обновление), создание нового проекта (поддержка SWT/JFace), создание нового SWT ApplicationWindow - все выглядит нормально. Новый файл доступен в редакторе и компилируется - запускается, выдает новое пустое окно, как и должно быть.

Нажатие на вкладку "Дизайн" приводит к появлению модального диалогового окна прогресса с сообщением "Разбор...", которое висит примерно на 15%. Окна редактора под сообщением о ходе выполнения заменяются общим сообщением о внутренней ошибке WindowsBuilder. - последняя строка которой всегда

ClassCastException не может привести org.eclipse.swt.shell.Shell к org.eclipse.swt.widget.Widget

(Поскольку индикатор выполнения "Parsing..." является модальным приложения (Buggering), Eclipse теперь заполнен, и мне нужно принудительно выйти. В сообщении об ошибке предлагаются кнопки для повторного анализа, переключения на заманчивый код и его невозможно использовать),

Можете ли вы помочь мне запустить Windowbuilder?

Большое спасибо за вашу помощь!

1 ответ

Решение

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

Мне кажется странным, что GUI-фреймворк, ориентированный на хороший внешний вид, будет иметь что-то такое плохое, как строка состояния со шрифтом, который не соответствует остальной части приложения.

Пойди разберись.

Я собираюсь использовать панель в качестве пользовательской панели инструментов, расположив ее в нижней части рамки.

Решение: найдено, решено.

IStatusLineManager.setMessage() не поддерживает форматированный текст.

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

Один из способов сделать это - переопределить fillStatusLine метод ApplicationActionBarAdvisor и добавьте свой пользовательский компонент SWT в строку состояния. В вашем случае добавьте CLabel и создать смелый Font и использовать setFont метод виджета.

Надеюсь, что это руководство поможет вам лучше понять решение.

Другие вопросы по тегам