【问题标题】:Java swing not recognizedJava swing 无法识别
【发布时间】:2013-05-20 18:10:14
【问题描述】:

我刚开始使用 Java,但在使用 swing 时遇到了多个教程中的问题。这个来自 Java for Dummies 的示例代码引发了以下错误:

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使用32位版本,7系统上使用64位。我确实包含了环境变量路径,并且可以成功使用 System.out.println 之类的基本内容。 XP 机器具有以前版本的 JDK 和 JRE,但之前没有安装它们。我没有尝试重新安装操作系统,但我认为这不是因为 Win7 系统最近进行了全新安装并引发了同样的问题。在此期间,没有其他主要的 progs 正在运行。我使用记事本进行编程。

感谢您的帮助。除了切换语言之外,我不确定这里还能做什么。我希望它只是我忽略的一些简单而琐碎的事情......

【问题讨论】:

  • 您会说西班牙语吗?使用 Java 时,需要使用" 字符作为引号。
  • > 不是传递对象的正确语法。请点击以下链接以了解更多关于docs.oracle.com/javase/6/docs/api/javax/swing/… 的更多信息,请阅读 Java 文档 for the Swing 使用示例非常好和简单
  • 另见guillemet
  • 对不起,除了使用谷歌翻译之外,不是说西班牙语的人 =)。感谢您对报价的建议,我认为那些 > 在这种用法上是错误的,为什么要在早期课程的 Java for Dummies 书中使用它?
  • 想通了,我还必须将问候语放在引号中->“问候语”。我仍然很好奇为什么一本简单的书会指导人们使用 > 虽然...

标签: java swing syntax joptionpane


【解决方案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);
    }
}

字符串应该在"" 而不是&lt;&lt; &gt;&gt;

【讨论】:

  • 你是一个巫师,工作就像一个魅力。知道为什么本书首先会建议 > 吗?除了我正在做的事情之外,也许它可能以其他方式是正确的?
  • no Java 不支持该语法。。这本书可能有某种打印错误。或者只是为了阅读目的而试图突出显示字符串。那是哪本书?
  • Java for Dummies '11。它可能是一个占位符,但不清楚,特别是如果更改了 > 中的措辞。哦,好吧...
【解决方案2】:
<<Hello, World!>>, 
<<greeter>>

不是有效的 java。如果这些应该是字符串,请使用:"Hello, World"

如果它是一个变量,这就足够了:greeter

【讨论】:

  • 是的,就是这样。不过,我也必须将问候语放在引号中,否则它会在问候语上引发“找不到符号”错误。我很生气,虽然一本基本的说明书会让我使用 > 完全清楚这是不正确的。我想知道整本书中还有哪些类似的项目。感谢您的帮助!
【解决方案3】:

替换

//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 中,有效字符串始终使用 "" 引用,但 null 除外。

【讨论】:

  • 感谢您的建议。这次似乎将错误缩小到一个:greeter.java:7: error: cannot find symbol。 (指向上述声明中的 greeter)。另外我要问,如果 > 在这种用法上是错误的,为什么要在早期课程的 Java for Dummies 书中使用它?
  • 我明白了,还得把greeter放在引号里。非常感谢!
  • @user2402654,有可能 > 在书中用作占位符的符号。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-22
  • 1970-01-01
  • 2013-01-31
  • 2016-07-29
  • 2015-02-17
  • 2017-05-09
  • 1970-01-01
相关资源
最近更新 更多