синтаксическая ошибка на addActionListener - PullRequest
0 голосов
/ 03 апреля 2011
import org.jsoup.Jsoup;


@SuppressWarnings({ "unused", "serial" })

public class SimpleWebCrawler extends JFrame implements ActionListener {

    JTextField yourInputField = new JTextField(20);
    static JTextArea _resultArea = new JTextArea(200, 200);
    JScrollPane scrollingArea = new JScrollPane(_resultArea);
    private final static String newline = "\n";




    @Override
    yourInputField.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub

    }









    public SimpleWebCrawler() throws MalformedURLException  {


        _resultArea.setEditable(false);

        String word2 = yourInputField.getText();

        try {
            URL my_url = new URL("http://" + word2 + "/");
            BufferedReader br = new BufferedReader(new InputStreamReader(
                    my_url.openStream()));
            String strTemp = "";
            while (null != (strTemp = br.readLine())) {
                _resultArea.append(strTemp + newline);
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }

        _resultArea.append("\n");
        _resultArea.append("\n");
        _resultArea.append("\n");


        String url = "http://" + word2 + "/";
        print("Fetching %s...", url);

        try{
        Document doc = Jsoup.connect(url).get();
        Elements links = doc.select("a[href]");


        System.out.println("\n");

        BufferedWriter bw = new BufferedWriter(new FileWriter("C:\\Users\\user\\fypworkspace\\FYP\\Link\\abc.txt"));
        _resultArea.append("\n");
        for (Element link : links) {
            print("  %s  ", link.attr("abs:href"), trim(link.text(), 35));

            bw.write(link.attr("abs:href"));
            bw.write(System.getProperty("line.separator"));
        }
        bw.flush();
        bw.close();
        } catch (IOException e1) {

        }
        JPanel content = new JPanel();

        content.setLayout(new BorderLayout());
        content.add(scrollingArea, BorderLayout.CENTER);
        content.add(yourInputField,BorderLayout.SOUTH);


        this.setContentPane(content);
        this.setTitle("Crawled Links");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.pack();
        JPanel content2 = new JPanel();
        this.setContentPane(content2);
        this.setTitle("Input the URL");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.pack();


        }

        private static void print(String msg, Object... args) {

            _resultArea.append(String.format(msg, args) +newline);
        }

        private static String trim(String s, int width) {
            if (s.length() > width)
                return s.substring(0, width - 1) + ".";
            else
                return s;
        }

        //.. Get the content pane, set layout, add to center




    public static void main(String[] args) throws IOException {

        JFrame win = new SimpleWebCrawler();
        win.setVisible(true);

    }



}

Я получил эту синтаксическую ошибку на addActionListener, (= ожидается после этого токена)

yourInputField.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub

    }

Кто-нибудь может дать мне указатель?

Ответы [ 3 ]

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

Вы должны перенести добавление actionlistener в тело метода, в данном случае это конструктор SimpleWebCrawler, и пропали некоторые скобки.

 import org.jsoup.Jsoup;


 @SuppressWarnings({ "unused", "serial" })

public class SimpleWebCrawler extends JFrame implements ActionListener {

JTextField yourInputField = new JTextField(20);
static JTextArea _resultArea = new JTextArea(200, 200);
JScrollPane scrollingArea = new JScrollPane(_resultArea);
private final static String newline = "\n";



public SimpleWebCrawler() throws MalformedURLException  {


    yourInputField.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub

   }});

    _resultArea.setEditable(false);

    String word2 = yourInputField.getText();

    try {
        URL my_url = new URL("http://" + word2 + "/");
        BufferedReader br = new BufferedReader(new InputStreamReader(
                my_url.openStream()));
        String strTemp = "";
        while (null != (strTemp = br.readLine())) {
            _resultArea.append(strTemp + newline);
        }
    } catch (Exception ex) {
        ex.printStackTrace();
    }

    _resultArea.append("\n");
    _resultArea.append("\n");
    _resultArea.append("\n");


    String url = "http://" + word2 + "/";
    print("Fetching %s...", url);

    try{
    Document doc = Jsoup.connect(url).get();
    Elements links = doc.select("a[href]");


    System.out.println("\n");

    BufferedWriter bw = new BufferedWriter(new FileWriter("C:\\Users\\user\\fypworkspace\\FYP\\Link\\abc.txt"));
    _resultArea.append("\n");
    for (Element link : links) {
        print("  %s  ", link.attr("abs:href"), trim(link.text(), 35));

        bw.write(link.attr("abs:href"));
        bw.write(System.getProperty("line.separator"));
    }
    bw.flush();
    bw.close();
    } catch (IOException e1) {

    }
    JPanel content = new JPanel();

    content.setLayout(new BorderLayout());
    content.add(scrollingArea, BorderLayout.CENTER);
    content.add(yourInputField,BorderLayout.SOUTH);


    this.setContentPane(content);
    this.setTitle("Crawled Links");
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.pack();
    JPanel content2 = new JPanel();
    this.setContentPane(content2);
    this.setTitle("Input the URL");
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.pack();


    }

    private static void print(String msg, Object... args) {

        _resultArea.append(String.format(msg, args) +newline);
    }

    private static String trim(String s, int width) {
        if (s.length() > width)
            return s.substring(0, width - 1) + ".";
        else
            return s;
    }

    //.. Get the content pane, set layout, add to center




public static void main(String[] args) throws IOException {

    JFrame win = new SimpleWebCrawler();
    win.setVisible(true);

}

}

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

Просто попробуйте это:

yourInputField.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub

    }
});

Вам не хватает конца оператора: закрывающая скобка и точка с запятой.

Кроме того, я не понимаю причину @Override как раз перед этим фрагментом кода.

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

Вы вызываете метод (yourInputField.addActionListener), и это должно происходить внутри другого метода, а не только в классе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...