我不知道我是否可以解释这一点,并发布正确的代码来说清楚,但我会尝试。 我有五节课。它们用于检查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;
}
我希望继续下去已经足够了,但不是太多。有什么想法吗?
答案 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();
}
}