找不到方法符号

时间:2011-02-18 08:12:57

标签: java

我不知道我是否可以解释这一点,并发布正确的代码来说清楚,但我会尝试。 我有五节课。它们用于检查ISBN号的有效性。我收到错误“无法找到符号 - 方法getISBN()。我有一个gui对象,我已经实例化。错误来自Handler,在这里:

       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的代码,你明白了:theres是一个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;      
}

我希望继续下去已经足够了,但不是太多。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

没有看到GUI类,很难说。但我怀疑你的ISBNText字段被声明为:

JTextField ISBNText = new ISBNText();

如果是这种情况,则无法找到getISBN(),因为变量的声明类型是JTextField,而不是ISBNText。您需要将其更改为

ISBNText ISBNText = new ISBNText();

请注意,几乎不应使用公共变量,Java中的变量应始终以小写字母开头。因此,您应该将其称为isbnText而不是ISBNText

答案 1 :(得分:1)

  下面是一个gui,它有一个叫做的文本域   ISBNText和ISBNText类中的   有一种方法可以检索我的文字,   叫做getISBN

好吧,如果gui.ISBNText是一个文本字段而不是ISBNText类的实例,那么它将无法找到您的方法。

您的代码必须是这样的:

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

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