Поиск экземпляров строки в текстовой области, подсчет найденного числа и печать в текстовом поле.Java-код - PullRequest
1 голос
/ 25 января 2012

Вот мой код для класса 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("");
    }
}
}
...