2011-11-06 28 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