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
метод виджета.
Надеюсь, что это руководство поможет вам лучше понять решение.