2010-02-16 58 views
0

我想用Eclipse創建一個Hello World SWT應用程序。我遵循所有的指示,最後我的程序不起作用。爲什麼我的SWT應用程序不起作用?

這是我的代碼:

import gnu.gcj.xlib.Display; 
import org.eclipse.swt.widgets.Shell; 


public class HelloWorldSWT { 

    /** 
    * @param args 
    */ 
    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     Display display = new Display(); 
     Shell shell = new Shell(display); 
     shell.setText("Hello world!"); 
     shell.open(); 
     while (!shell.isDisposed()) { 
     if (!display.readAndDispatch()) display.sleep(); 
     } 
     display.dispose(); 
    } 

} 

這是我的錯誤信息:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    The constructor Shell(Display) is undefined 
    The method readAndDispatch() is undefined for the type Display 
    The method sleep() is undefined for the type Display 
    The method dispose() is undefined for the type Display 

    at HelloWorldSWT.main(HelloWorldSWT.java:13) 

有誰知道我怎麼能檢查什麼是錯的?

回答

8

我想你正在導入一個錯誤的Display類。正確的應該是

org.eclipse.swt.widgets.Display 
+1

當我替換「import org.eclipse.swt.widgets.Shell;」通過「org.eclipse.swt.widgets.Display」,Eclipse寫道我有一些衝突。我已經刪除了我的代碼的第一行(import gnu.gcj.xlib.Display;)。然後當我嘗試運行我的程序時,我仍然有一些錯誤消息: 線程「main」中的異常java.lang.Error:未解決的編譯問題: \t Shell無法解析爲某個類型 \t Shell無法解析爲類型 at HelloWorldSWT.main(HelloWorldSWT.java:12) – Roman

+1

您必須讓導入到'org.eclipse.swt.widgets.Shell'並添加導入'org.eclipse.swt.widgets.Display'。 –

0

清洗所有的文件夾中,做一遍,進口SWT創建凸出,檢查構建路徑添加類,運行 這應該工作。 如果沒有,請右鍵單擊,單擊清理,單擊源...組織導入,再次運行。應該工作,如果在你的庫錯誤沒有

swt.dll

,所有

swt.dll

複製到庫路徑。現在應該工作。

+0

好工作現在 – alex

0

我犯了同樣的錯誤。我的問題是在第二步:我選擇導入「org.eclipse.swt」。相反,您必須爲您的操作系統選擇正確的一個。在我的情況下,這是「org.eclipse.swt.win32.win32.x86」。完成此操作後,本教程中的其餘步驟應按預期工作。

上面的答案雖然正確,但可能會比完成本教程的大部分知識要多一點知識。

相關問題