2012-01-03 5 views
0

В настоящее время у меня есть 3 класса, основной класс, содержащий графический интерфейс, и fnameTxtField, класс клиента, содержащий данные, и класс customerList, который собирает данные из класса клиентов и помещает их в список массивов ,Поиск ArrayList

+5

Вопрос для меня не имеет смысла. –

+2

Что такое 'searchCustomer (fnameTxtField.getText)' и откуда вы знаете 'customer.returnID()' количество элементов в 'search'? Вы уверены, что 'fnameTxtField.getText' не должен быть' fnameTxtField.getText() '? Вы уверены, что он даже компилируется? –

+0

Вы вообще не описали проблему или не объяснили, что означает 'returnID()'. Пожалуйста, прочитайте http://tinyurl.com/so-hints. Я также предлагаю вам начать следовать соглашениям об именах Java. –

ответ

0

Где вы используете fnameTxtField.getText, Java ждет вас от dec lare параметр метода (вроде как объявление переменной). Параметр - это информация о том, что ваш метод сказал об одном конкретном исполнении, вместо того, чтобы самостоятельно узнать.

Таким образом, вы правы, думая, вы хотите что-то вроде этого:

public void searchCustomer(String familyName) { 
    for (int i = 0; i < customer.returnID(); i++) { 
     customer search = search.get(i); 
     if (search.returnFamilyName().equals(familyName)) { 
      System.out.println("Index: " + i);    
      //removed return i; 
      return; 
     } 
    } 
} 

Тогда в точке вызова (метод вызова) указать, что вы хотите использовать значение в текстовом поле:

//... 
searchCustomer(fnameTxtField.getText()); 
1

Быстрое исправление: переформулируйте свой метод, чтобы иметь следующую подпись public void searchCustomer(String text) { ... } и позвоните по номеру searchCustome(fnameTxtField.getText()). Тогда вы могли бы использовать переменную «текст» в методе, так что линии

if (search.returnFamilyName().equals(fnameTxtField.getText))

изменения

if (search.returnFamilyName().equals(text))

(или не имеют каких-либо параметров на всех и добавить [вероятно] отсутствующих скобок до fnameTxtField.getText)