2011-11-06 32 views
0

我正在研究Java编程课程中的作业问题,并且卡住了。我会告诉你,我绝不是专家,对Java或编程一般也不太了解。卡在Java编程作业作业

我遇到的这个问题对我的家庭作业而言并不是一个问题,而是来自这本书的一个例子,我似乎无法工作。这本书的部分是名为

编写使用Event

这本书在这部分,它指导学生进行复制,并尝试在他们的IDE,看看下面的例子中的应用事件类的概念是如何工作的:

import java.util.Scanner; 

public class CreateEventObject 
{ 

    public static void main(String[] args) 
    { 

    int eventType; 
    String chosenManager = ""; 
    double chosenRate = 0; 
    Event scheduledEvent = new Event(); 
    final int PRIVATE_CODE = 1; 
    final int CORPORATE_CODE = 2; 
    final int NONPROFIT_CODE = 3; 
    final String PRIVATE_MANAGER = "Dustin Britt"; 
    final String CORP_MANAGER = "Carmen Lindsey"; 
    final String NONPROFIT_MANAGER = "Robin Armenetti"; 
    final double PRIVATE_RATE = 47.99; 
    final double CORP_RATE = 75.99; 
    final double NONPROFIT_RATE = 40.99; 
    boolean choiceIsGood = true; 

    Scanner input = new Scanner(System.in); 
    System.out.println("What type of event are you scheduling?"); 
    System.out.print("Enter " + PRIVATE_CODE + " for private, " + CORPORATE_CODE + " for corporate, or " + NONPROFIT_CODE + " for nonprofit... "); 
    eventType = input.nextInt(); 

    if(eventType == PRIVATE_CODE) 
    { 
     chosenManager = PRIVATE_MANAGER; 
     chosenRate = PRIVATE_RATE; 
    } 
    else 
     if(eventType == CORPORATE_CODE) 
     { 
      chosenManager = CORP_MANAGER; 
      chosenRate = CORP_RATE; 
     } 
     else 
      if(eventType == NONPROFIT_CODE) 
      { 
       chosenManager = NONPROFIT_MANAGER; 
       chosenRate = NONPROFIT_RATE; 
      } 
      else 
       choiceIsGood = false; 

    if(choiceIsGood) 
    { 
     scheduledEvent.setType(eventType); 
     scheduledEvent.setManager(chosenManager); 
     scheduledEvent.setRate(chosenRate); 
    } 
    else 
     System.out.println("You entered " + eventType + " which is invalid."); 

    System.out.println("Scheduled event:"); 
    System.out.println("Type: " + scheduledEvent.getType() + " Manager: " + scheduledEvent.getManager() + " Rate: " + scheduledEvent.getRate() + " per hour"); 
    } 

} 

当我尝试编译上面的代码,我从IDE收到以下错误:

CreateEventObject.java:12: error: cannot find symbol 
    Event scheduledEvent = new Event(); 
    ^
    symbol: class Event 
    location: class CreateEventObject 
CreateEventObject.java:12: error: cannot find symbol 

它说类的事件是问题,但根据这本书,这是一个有效的类...

我使用JGRASP在Windows 7专业版64位和JDK 1.70。

我觉得很奇怪,书中的一个例子不能正确编译,但事实并非如此。我可能错过了一些非常简单的事情,但我看不到任何错误。

任何帮助或方向将不胜感激。先谢谢您的帮助。

+3

什么是“事件”?我猜这个类是在本章的前面部分实现的 - 你需要在你的项目中使用这些代码。 –

+8

问题是无法找到Event类。您是否创建了上一章“创建事件类以用于决策应用程序”中的事件类?两个类都必须位于同一个包中,否则您需要为Event类添加一个'import'语句。 – ewernli

回答

3

您正在尝试使用这些方法:

scheduledEvent.setType(eventType); 
scheduledEvent.setManager(chosenManager); 
scheduledEvent.setRate(chosenRate); 

不属于AWT事件类。所以,很可能在你的书有什么地方描述的事件类:找到它然后:

  1. 创建一个类,在你的书
  2. 描述的实现该类添加到CreateEventObject的包或换个包装内,然后将其导入:

    import your.package.name.Event; 
    
+0

如果事件与CreateEventObject位于同一个包中,则不需要指定包。但我怀疑他没有从书中创建Event类。 – ewernli

+1

Erm,不,因为他所调用的方法不是* java.awt.Event类的一部分。 (这是我的初始答案,直到我看了......然后删除它;)) –

+0

@布莱恩罗奇:是的,你是对的..我只是编辑我的答案。谢谢 – Heisenbug

1

事件存在于java.awt.Event中。你必须导入它。

http://download.oracle.com/javase/1.4.2/docs/api/java/awt/Event.html

+2

Erm,不,因为他调用的方法不是java.awt.Event类的一部分。 (这是我最初的回答,直到我看了......然后删除它;)) –

+0

啊哈。这些:scheduledEvent.setType(eventType); scheduledEvent.setManager(chosenManager); scheduledEvent.setRate(chosenRate); – r3st0r3

+0

WTF!我得到了赞同以上赞成的同样的事情!我发现了同样的事情(之前5分钟,在上面的评论中),在上面的答案中作为编辑出现的内容也获得了赞赏。有趣的呃? – r3st0r3