2011-02-18 68 views
0

我不知道我是否可以解釋這一點,併發布正確的代碼來說明問題,但我會嘗試。 我有五個班。它們被用來檢查ISBN號碼的有效性。 。我收到錯誤「無法找到符號 - 方法getISBN()我有我已經實例化GUI對象的錯誤來自於處理程序,在這裏:找不到方法符號

 public void actionPerformed(ActionEvent e) 
    { 
     if (e.getSource()==gui.validateButton) 
     { 
      try 
      { 
      gui.ISBNText.getISBN();/////////////error////////// 
      gui.status.setText("ISBN " + ISBNText.bookNum + " is valid"); 
      } 
      catch(ISBNException er) 
      { 
      gui.status.setText(er.getMessage());  
      } 
     } 
     else System.exit(0); 

我不會從GUI張貼任何代碼,你的想法:那裏有一個圖形用戶界面,它有一個叫ISBNText文本框,並在ISBNText類,還有就是找回我的文本的方法,叫做getISBN,代碼:

public ISBNText() 
{ 
    super(20); 
} 
//retrieve the ISBN num from textfield 
public String getISBN() throws ISBNException 
{   
    bookNum = getText();  
    validateISBN(bookNum); 
    return bookNum;  
} 

我希望這是足夠的,但沒有太多,繼續下去任何想法?

+0

什麼是GUI的引用類型?如果你有SomeClass gui,那麼'SomeClass'是什麼? – 2011-02-18 08:16:29

+1

你在用什麼IDE? – Thilo 2011-02-18 08:16:39

回答

2

沒有看到GUI類,很難說。不過,我會懷疑你的ISBNText字段聲明爲是:

JTextField ISBNText = new ISBNText(); 

如果是這樣的話,那麼getISBN()無法找到,因爲變量的聲明類型爲JTextField的,而不是ISBNText。您需要將其更改爲

ISBNText ISBNText = new ISBNText(); 

注意公共變量應該幾乎從來沒有被使用,而且在Java變量應始終以一個小寫字母開頭。因此,您應該將其稱爲isbnText而不是ISBNText

1

繼承人圖形用戶界面,它有一個叫 ISBNText文本框,並在ISBNText類, 有取回我的文字的方法, 稱爲getISBN

嗯,如果gui.ISBNText是一個文本字段而不是一個ISBNText類的實例,那麼它將無法找到你的方法。

你的代碼需要是這樣的:

class Gui { 
    final ISBNText isbnText = new ISBNText(); 
} 

class Main { 
    void someMethod(){ 
     Gui gui = new Gui(); 
     gui.isbnText.getISBN(); 
    } 
}