Ваша проблема в том, что он установит текст для метки для всех слов, но сделает это так быстро, что у вас не будет времени прочитать его.Если вы хотите сделать это медленно, вам нужно будет использовать что-то для замедления цикла, например, Swing Timer.Также не нужно
if (suchAndSuch == true)
Очиститель просто сделать
if (suchAndSuch)
Например:
if (e.getActionCommand().equals("Search")) {
final String strSearchString = searchTextField.getText();
System.out.println(strSearchString);
String text = outTextArea.getText();
System.out.println(text);
final Scanner sc = new Scanner(text);
int timerDelay = 2 * 1000;
new Timer(timerDelay, new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (sc.hasNext()) {
String s = sc.next();
if (s.equals(strSearchString)) {
searchOutLabel.setText("Yes");
} else {
searchOutLabel.setText("Non!");
}
} else {
((Timer)e.getSource()).stop();
sc.close();
}
}
}).start();
}
Изменить 1
Если вы хотите напечатать yes, если какое-либо совпадение было найдено, то вам нужно изменить свою логику, чтобы установить текстовое поле, если какое-либо совпадение найдено, затем выйдите из метода.Если совпадений не найдено (вы достигли конца цикла while), установите там метку:
while (sc.hasNext()) {
String s = sc.next();
if (s.equals(strSearchString)) {
searchOutLabel.setText("Yes");
sc.close();
return;
}
}
searchOutLabel.setText("Non!");
sc.close();