2011-02-18 66 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(); 
    } 
}