Вот мой код для класса Searcher Listener для моего основного класса WordSearch. Это компилирует, но не дает мне результаты, которые мне нужны, а именно: сколько раз строка появляется в текстовой области. Любая помощь будет принята с благодарностью.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.io.*;
public class Searcher implements ActionListener
{
private JTextField foundTextField;
private JTextArea mainTextArea;
private JTextField searchTextField;
private int count;
public Searcher(JTextField field, JTextArea main, JTextField searched)
{
this.foundTextField = field;
this.mainTextArea = main;
this.searchTextField = searched;
count = 0;
}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("search"))
{
count = 0;
String allOfText = mainTextArea.getText();
String searchedText = searchTextField.getText();
int firstString = allOfText.indexOf(searchedText);
boolean valid = false;
while(!valid)
{
if(firstString !=-1)
{
count+=1;
foundTextField.setText("" + count);
firstString = allOfText.indexOf(searchedText, firstString);
}
else
{
valid = true;
}
}
if(mainTextArea.getText().equals(""))
{
JOptionPane error = new JOptionPane();
error.showMessageDialog(null,"target text is empty", " target text is empty", JOptionPane.ERROR_MESSAGE);
}
else if(searchTextField.getText().equals(""))
{
JOptionPane error = new JOptionPane();
error.showMessageDialog(null,"search text is empty", "search text is empty", JOptionPane.ERROR_MESSAGE);
}
}
else if(e.getActionCommand().equals("Reset All"))
{
mainTextArea.setText("");
foundTextField.setText("");
searchTextField.setText("");
}
else if(e.getActionCommand().equals("Reset"))
{
mainTextArea.setText("");
foundTextField.setText("");
searchTextField.setText("");
}
else if(e.getActionCommand().equals("Clear"))
{
mainTextArea.setText("");
}
}
}