Поиск по списку файлов по содержимому JTextField - arraylist.contains (jtextfield) - PullRequest
0 голосов
/ 04 декабря 2011

В настоящее время я пытаюсь написать систему, которая сфокусирована на вводе данных в списки и массивы, а также на реализацию функций поиска и сортировки.

В настоящее время в моей системе установлено:

Класс для хранения данных Класс Arraylist, который получает данные от объекта в классе хранения данных.И, наконец, класс Swing GUI, который содержит JList, который отображает Arraylist.

Я пытаюсь выполнить поиск по массиву с помощью JLutton actionlistener, а затем вывести результаты поиска вJList.

JButton будет брать содержимое JTextField и проверять, присутствует ли строка в ArrayList.

Прежде всего, мой вопрос: как мне создать поиск?функция в классе arraylist и вызывать содержимое JTextField в отдельном классе?

Во-вторых, нужно ли преобразовывать поле jtext в строку, прежде чем я смогу вызвать метод .contains для массива?

и в-третьих, как только будет реализована функция поиска, как мне выбрать запись из массива, если искомый текст присутствует

Вот мой класс хранения данных: http://pastebin.com/hwyD8r1j

Мой класс архива: http://pastebin.com/d3ftLsJb

Я не ожидаю, что вы, ребята, напишите это для меня, хотя это было бы неплохо, ха-ха.

Но любые указания или понимание того, как я мог бы реализовать эту функцию в моем массиве, были бы признательны,

О, и если вам нужно, чтобы я опубликовал свой класс GUI, просто спросите.

1 Ответ

3 голосов
/ 04 декабря 2011

Вызвать getText на JTextField, чтобы получить введенную строку. Вы в основном будете делать что-то вроде следующего.

// Somehow you've initialized your array list
List<String> data = ...;

// within your action listener - invoked when the button is clicked.  You'll need to
// make sure the textField is "final"
String selected = textfield.getText();
// Linear search through your strings for one matching your text
for (String datum : data) {
  if (selected.contains(datum)) {
    // do whatever you want here; you found a match
  }
}
...