jtextarea не выскакивает - PullRequest
       0

jtextarea не выскакивает

0 голосов
/ 03 апреля 2011
import net.htmlparser.jericho.*;

@SuppressWarnings({ "serial", "unused" })
public class RenderToText extends JDialog {


    static JTextArea _resultArea = new JTextArea(100, 100);
    JScrollPane scrollingArea = new JScrollPane(_resultArea);
    private final static String newline = "\n";
    int filename = 100;
    String[] fileName = new String[filename];

    public RenderToText(){
        for (int i = 0; i < filename; i++) {
         String fileName = "abc"+i+".txt";
            // A File object to represent the filename
            File f = new File(fileName);
            f.delete();
        }


        _resultArea.setEditable(false);
        //Starting to write files
        try{
        FileReader fr = new FileReader(
                "C:\\Users\\user\\fypworkspace\\FYP\\Link\\abc.txt");
        BufferedReader textReader = new BufferedReader(fr);

        // for each URL, process the URL and render the HTML file
        int numberofURL = 100;
        String[] URL = new String[numberofURL];
        int a;




        // For each URL, assign one text file to store the contents

        // for each URL, extract the URL contents

        for (a = 0; a < numberofURL; a++) {
            for (int i = 0; i < numberofURL; i++) {

                URL[a] = textReader.readLine();
                try{
                try {
                    try {
                        // Render the text from the HTML file
                        String sourceUrlString = URL[a];


                        System.out.println("Using argument of \""
                                    + sourceUrlString + '"');


                        if (sourceUrlString.indexOf(':') == -1)
                            sourceUrlString = "file:" + sourceUrlString;
                        Source source = new Source(new URL(sourceUrlString));
                        String renderedText = source.getRenderer()
                                .toString();
                        _resultArea.append("\nSimple rendering of the HTML document:\n" + newline);
                        System.out.println(renderedText+ newline);

                        // Write the rendered text to a text file


                        String filename = ("abc" + i + ".txt");
                        Writer output = null;
                        String text = renderedText;
                        File file = new File(filename);
                        output = new BufferedWriter(new FileWriter(file));
                        output.write(text);
                        output.close();
                        System.out.println("Your file has been written"+ newline);



                        // Count the number of words available in the
                        // rendered text.

                        BufferedReader br = new BufferedReader(
                                new FileReader(
                                        "C:\\Users\\user\\fypworkspace\\FYP\\abc"
                                                + i + ".txt"));
                        String line = "", str = "";
                        int count = 0;
                        while ((line = br.readLine()) != null) {
                            str += line + " ";

                        }
                        StringTokenizer st = new StringTokenizer(str);
                        while (st.hasMoreTokens()) {
                            String s = st.nextToken();
                            count++;
                        }
                        _resultArea.append("File has " + count + " words."+ newline);
                    } catch (UnknownServiceException ex) {
                        System.out.println("The following url cannot be processed"+ newline);

                    }

                    System.out.println("\n");
                    System.out.println("\n");
                    System.out.println("\n");
                } catch (NullPointerException ex) {
                    System.out.println("End of URL");
                    System.exit(0);
                }
            }catch(IOException ex){
                System.out.println("The following url cannot be processed due to the need to login");
            }
            }
        }


    }catch (IOException e1) {
    }
    JPanel content = new JPanel();
    content.setLayout(new BorderLayout());
    content.add(scrollingArea, BorderLayout.CENTER);

    this.setContentPane(content);
    this.setTitle("TextAreaDemo B");

    this.pack();
    }



    public static void main(String[] args) throws IOException {
        JDialog win = new RenderToText();
        win.setVisible(true);

    }
    }

Этот код извлекает содержимое веб-сайта.Я использую append на выходе, однако jtextarea не выходит.Он не может работать, но он CANT передает вывод в jtextarea.Чего мне не хватает?

Ответы [ 2 ]

1 голос
/ 03 апреля 2011

Вы запускаете две петли

for (a = 0; a < numberofURL; a++)
    for (int i = 0; i < numberofURL; i++)

с 100 шагами каждый. Таким образом, вы читаете 10000 URL-адресов из вашего входного файла. Если их недостаточно, readline вернет ноль и, таким образом, вы получите исключения (см. Также комментарий от extraneon). Избавьтесь от бесполезной второй петли.

Помимо ошибок при чтении файлов, ваша текстовая область должна отображать вывод (и это в моем тесте). Поэтому кажется, что он находится внутри вашего цикла чтения и обработки исключений в нем.

Примечание: пожалуйста, обратите внимание на другие комментарии от extraneon.

0 голосов
/ 03 апреля 2011

Согласен с комментарием о статической JTextArea. Если вы хотите просмотреть содержимое, вы можете использовать один и тот же документ в двух JTextAreas, добавленных в разных местах.

...