2013-05-20 204 views
1

我剛剛開始使用Java,但在使用swing時遇到了多個教程中的問題。從Java傻瓜此示例代碼拋出了以下錯誤:Java swing未被識別

helloapp.java:

public class helloapp 
{ 
    public static void main(String[] args) 
    { 
     greeter myGreeterObject = new greeter(); 
     myGreeterObject.sayhello(); 
    } 
} 

greeter.java

import javax.swing.JOptionPane; 

public class greeter 
{ 
    public void sayhello() 
    { 
     //System.out.println("Hello, World!"); 
     JOptionPane.showMessageDialog(null, <<Hello, World!>>, 
<<greeter>>, JOptionPane.INFORMATION_MESSAGE); 
    } 
} 

拋出的錯誤是在此編譯:

c:\>javac helloapp.java greeter.java 
greeter.java:8: error: illegal start of expression 
       JOptionPane.showMessageDialog(null, <<Hello, World!>>, <<greeter 
>>, JOptionPane.INFORMATION_MESSAGE); 
                ^
greeter.java:8: error: ')' expected 
       JOptionPane.showMessageDialog(null, <<Hello, World!>>, <<greeter 
>>, JOptionPane.INFORMATION_MESSAGE); 
                   ^
greeter.java:8: error: illegal start of expression 
       JOptionPane.showMessageDialog(null, <<Hello, World!>>, <<greeter 
>>, JOptionPane.INFORMATION_MESSAGE); 
                   ^
greeter.java:8: error: ';' expected 
       JOptionPane.showMessageDialog(null, <<Hello, World!>>, <<greeter 
>>, JOptionPane.INFORMATION_MESSAGE); 
                    ^
greeter.java:8: error: illegal start of expression 
       JOptionPane.showMessageDialog(null, <<Hello, World!>>, <<greeter 
>>, JOptionPane.INFORMATION_MESSAGE); 
                    ^
greeter.java:8: error: ';' expected 
       JOptionPane.showMessageDialog(null, <<Hello, World!>>, <<greeter 
>>, JOptionPane.INFORMATION_MESSAGE); 

^ 
greeter.java:8: error: not a statement 
       JOptionPane.showMessageDialog(null, <<Hello, World!>>, <<greeter 
>>, JOptionPane.INFORMATION_MESSAGE); 

      ^
greeter.java:8: error: ';' expected 
       JOptionPane.showMessageDialog(null, <<Hello, World!>>, <<greeter 
>>, JOptionPane.INFORMATION_MESSAGE); 

           ^
8 errors 

這個教程給了我它採用擺動,但幀數而不是窗格類似的錯誤:發生 http://zetcode.com/tutorials/javagamestutorial/basics/

的問題在Windows 7和XP的機器上是相同的,最新的JDK和JRE使用,並用於XP和64位的32位版本在7系統上。我確實包含了環境變量路徑,並且可以成功使用諸如System.out.println這樣的基本東西。 XP機器有JDK和JRE以前的版本,但是之前沒有進行過註銷。我沒有嘗試重新安裝操作系統,但我想這不是因爲Win7系統最近有一個全新的安裝,並引發同樣的問題。在此期間沒有其他主要的編程正在運行。我使用記事本進行編程。

我很感激任何幫助。除了開關語言之外,我不確定除此之外還有什麼其他功能。我希望它只是簡單而平凡,我忽略了...

+6

你是否有機會說西班牙語?當使用Java時,您需要使用'''字符作爲引號。 – dlev

+0

<>不是傳遞Object的正確語法。請按照以下鏈接瞭解關於http://docs.oracle.com/javase/的更多信息。 6/docs/api/javax/swing/JOptionPane.htmlJOptionPane .................閱讀Swing的Java文檔還有一件事用示例 –

+0

更好更容易參見[ * guillemet *](http://en.wikipedia.org/wiki/Guillemet) – trashgod

回答

1
import javax.swing.JOptionPane; 

public class greeter 
{ 
    public void sayhello() 
    { 
     //System.out.println("Hello, World!"); 
     JOptionPane.showMessageDialog(null, "Hello, World!", 
"greeter", JOptionPane.INFORMATION_MESSAGE); 
    } 
} 

字符串應該是""而不是<< >>

+0

你是一個嚮導,工作就像一個魅力。任何想法爲什麼<<>>首先會被書中的建議?也許這可能是正確的,除了我在做什麼以外的其他一些方式? – user2402654

+0

沒有Java不支持該語法..本書可能有某種打印錯誤..或只是試圖突出字符串的閱讀目的..這本書是什麼? –

+0

Java for Dummies '11。它可能是一個佔位符,但不清楚,特別是因爲如果改變了話,它可以在<<>>內工作。噢... – user2402654

1
<<Hello, World!>>, 
<<greeter>> 

是無效的java。如果這些都應該是字符串使用:"Hello, World"

,如果它是一個變量只是這足以:greeter

+0

是的,就是這樣。儘管如此,我也不得不引用歡迎詞,否則它會在歡迎辭中拋出「無法找到符號」的錯誤。我很煩惱,雖然一本基本的指導書會讓我使用<< >>知道這是不正確的。我想知道這本書中還有哪些其他項目會發生。謝謝您的幫助! – user2402654

1

更換

//System.out.println("Hello, World!"); 
     JOptionPane.showMessageDialog(null, <<Hello, World!>>, 
<<greeter>>, JOptionPane.INFORMATION_MESSAGE); 

//System.out.println("Hello, World!"); 
     JOptionPane.showMessageDialog(null, "Hello, World!", 
greeter, JOptionPane.INFORMATION_MESSAGE); // greeter is well defined string. 

在java中,有效的字符串總是用「」引用,除了空。

+0

感謝您的建議。它似乎已將錯誤縮小到一次:greeter.java:7:錯誤:無法找到符號。 (在上面的陳述中指向迎賓)。 另外我不得不問,如果<<>>這個用法是錯誤的,爲什麼它會在早期課程中用於Java for Dummies書籍? – user2402654

+0

我明白了,也不得不引用歡迎詞。非常感謝你! – user2402654

+0

@ user2402654,可能是<<>>用作書籍中佔位符的符號。 –