2012-04-03 25 views
1

我是SWT的新手。有兩個問題已經花了3天的時間,嘗試,尋找和搜索。這是瞭解新事物的好方法,但我完全被以下兩個持續性問題所困擾。SWT/JFace:如何在StatusLine上設置字體? Windowbuilder破了?

提問第一個。

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

(因爲「解析。 ..「進度條是應用程序(buggering)模式,Eclipse現在塞滿了,我必須強制退出。消息提供按鈕來重新解析,切換到誘人的代碼,並且不可用)。

你能幫我讓Windowbuilder啓動嗎?

非常感謝您的幫助!

回答

0

我將忽略內置的狀態行,因爲它只是爲那些願意擁有精確而有限的功能包的人提供的解決方案。

對於我來說,一個GUI框架如此專注於看起來不錯,會有一些狀況線與一個字體不匹配的應用程序的其餘部分,這似乎很奇怪。

去圖。

我將使用面板作爲自定義工具欄,將其定位到框架的底部。

解決方法:找到,決定。

1

IStatusLineManager.setMessage()不支持豐富樣式文本。

您應該將項目添加到狀態欄。

一種方法是覆蓋fillStatusLine方法ApplicationActionBarAdvisor並將您的自定義SWT組件添加到狀態行。 在你的情況下添加一個CLabel並創建一個大膽的Font並使用小部件的方法setFont

希望this教程可以幫助您更好地理解解決方案。

+0

非常感謝。這工作。我不得不說,我對此持懷疑態度,但仔細地聽從了建議,而且工作成功。我必須說我已經看過文檔中的contributionitem,並且認爲它對於一個如此簡單的問題來說太複雜了,你對回答這個問題的幫助已經解決了我目前的問題,並且教會了我更多的東西。非常感激! – 2012-04-03 09:04:40

+0

我也困在這個問題上。你如何「連接」ApplicationActionBarAdvisor和ApplicationWindow? – Unplug 2014-10-12 05:45:15

相關問題