Java 如何使ListIterator正常工作?

Java 如何使ListIterator正常工作?,java,Java,我试图迭代用户使用小程序上的文本字段输入的单词链接列表,并返回在列表中找到单词的次数 import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.LinkedList; import java.util.ListIterator; public class Applet2 extends JApplet { private String text; private int

我试图迭代用户使用小程序上的文本字段输入的单词链接列表,并返回在列表中找到单词的次数

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.LinkedList;
import java.util.ListIterator;

public class Applet2 extends JApplet {

    private String text;
    private int text1;
    JTextField value1, value2;
    LinkedList<String> list = new LinkedList<String>();
    public JLabel jLabel;
    public int count = 0;
    public int search_count = 0;

    public void init() {

        JLabel prompt = new JLabel("Please enter a word");
        JLabel prompt1 = new JLabel("Please enter a certain letter");

        value1 = new JTextField(10);
        value2 = new JTextField(10);

        JPanel textPanel = new JPanel();
        textPanel.add(prompt);
        textPanel.add(value1);
        add(textPanel, BorderLayout.NORTH);
        textPanel.add(prompt1);
        textPanel.add(value2);


        JPanel centrePanel = new JPanel();
        text = "";
        jLabel = new JLabel(text);
        centrePanel.add(jLabel);
        add(centrePanel, BorderLayout.CENTER);


        JButton but = new JButton("Add word");
        JButton but1 = new JButton("Clear");
        JButton but2 = new JButton("Remove first occurrence");
        JButton but3 = new JButton("Remove all occurrences");
        JButton but4 = new JButton("Display all words begging with certain letter");
        JButton but5 = new JButton("Search");

        JPanel butPanel = new JPanel();

        butPanel.add(but);
        butPanel.add(but1);
        butPanel.add(but5);
        butPanel.add(but2);
        butPanel.add(but3);
        butPanel.add(but4);


        add(butPanel, BorderLayout.SOUTH);

        but.addActionListener(new ButtonHandler(this));
        but1.addActionListener(new ButtonHandler1(this));
        but5.addActionListener(new ButtonHandler2(this));
        //but2.addActionListener(new ButtonHandler3(this));


    }

    class ButtonHandler implements ActionListener {

        private Applet2 theApplet;

        public ButtonHandler(Applet2 app) {
            theApplet = app;
        }

        public void actionPerformed(ActionEvent e) {

            text = theApplet.value1.getText();

            try {

                text1 = Integer.parseInt(text);
                jLabel.setText("ERROR - The string " + "'" + text1 + "'" + " is not a valid word");

            } catch (NumberFormatException e1) {

                if (text.length() != 0) {
                    jLabel.setText("Word " + "'" + text + "'" + " has been added to the list");
                    count = count + 1;
                } else {
                    jLabel.setText("ERROR - Please enter a word");
                }

            }

        }
    }

    class ButtonHandler1 implements ActionListener {

        private Applet2 theApplet;

        public ButtonHandler1(Applet2 app) {
            theApplet = app;
        }

        public void actionPerformed(ActionEvent e) {

            list.clear();
            jLabel.setText("List has been cleared");
            count = 0;

        }
    }

    class ButtonHandler2 implements ActionListener {

        private Applet2 theApplet;

        public ButtonHandler2(Applet2 app) {
            theApplet = app;
        }

        public void actionPerformed(ActionEvent e) {

            String text = theApplet.value1.getText();
代码打印出,即使用户已将单词添加到列表中,每次都没有在列表中找到单词。我认为问题在于迭代器中的表达式或“将单词添加到列表”按钮,因为我还认为单词可能没有实际添加到列表中

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.LinkedList;
import java.util.ListIterator;

public class Applet2 extends JApplet {

    private String text;
    private int text1;
    JTextField value1, value2;
    LinkedList<String> list = new LinkedList<String>();
    public JLabel jLabel;
    public int count = 0;
    public int search_count = 0;

    public void init() {

        JLabel prompt = new JLabel("Please enter a word");
        JLabel prompt1 = new JLabel("Please enter a certain letter");

        value1 = new JTextField(10);
        value2 = new JTextField(10);

        JPanel textPanel = new JPanel();
        textPanel.add(prompt);
        textPanel.add(value1);
        add(textPanel, BorderLayout.NORTH);
        textPanel.add(prompt1);
        textPanel.add(value2);


        JPanel centrePanel = new JPanel();
        text = "";
        jLabel = new JLabel(text);
        centrePanel.add(jLabel);
        add(centrePanel, BorderLayout.CENTER);


        JButton but = new JButton("Add word");
        JButton but1 = new JButton("Clear");
        JButton but2 = new JButton("Remove first occurrence");
        JButton but3 = new JButton("Remove all occurrences");
        JButton but4 = new JButton("Display all words begging with certain letter");
        JButton but5 = new JButton("Search");

        JPanel butPanel = new JPanel();

        butPanel.add(but);
        butPanel.add(but1);
        butPanel.add(but5);
        butPanel.add(but2);
        butPanel.add(but3);
        butPanel.add(but4);


        add(butPanel, BorderLayout.SOUTH);

        but.addActionListener(new ButtonHandler(this));
        but1.addActionListener(new ButtonHandler1(this));
        but5.addActionListener(new ButtonHandler2(this));
        //but2.addActionListener(new ButtonHandler3(this));


    }

    class ButtonHandler implements ActionListener {

        private Applet2 theApplet;

        public ButtonHandler(Applet2 app) {
            theApplet = app;
        }

        public void actionPerformed(ActionEvent e) {

            text = theApplet.value1.getText();

            try {

                text1 = Integer.parseInt(text);
                jLabel.setText("ERROR - The string " + "'" + text1 + "'" + " is not a valid word");

            } catch (NumberFormatException e1) {

                if (text.length() != 0) {
                    jLabel.setText("Word " + "'" + text + "'" + " has been added to the list");
                    count = count + 1;
                } else {
                    jLabel.setText("ERROR - Please enter a word");
                }

            }

        }
    }

    class ButtonHandler1 implements ActionListener {

        private Applet2 theApplet;

        public ButtonHandler1(Applet2 app) {
            theApplet = app;
        }

        public void actionPerformed(ActionEvent e) {

            list.clear();
            jLabel.setText("List has been cleared");
            count = 0;

        }
    }

    class ButtonHandler2 implements ActionListener {

        private Applet2 theApplet;

        public ButtonHandler2(Applet2 app) {
            theApplet = app;
        }

        public void actionPerformed(ActionEvent e) {

            String text = theApplet.value1.getText();
这里是我试图在Applet上打印出单词被发现的次数的地方。代码打印出来,没有在任何情况下添加单词

                jLabel.setText("Word " + "'" + text + "'" + " was found " + search_count + " time(s) in the list");



        if (text.length() == 0) {

                jLabel.setText("Please enter a word - The total number of words in the list are: " + count);

            }
        }

    }
}

您发布的代码调用列表上的两个方法:clear()和listIterator()。所以你从不在列表中添加任何内容。你能解释一下吗,我尝试在“清除”按钮上添加清除列表的功能,我想我就是这么做的。我试图让我的迭代器在我解释过的列表中找到所有用户输入的单词。“添加”按钮的操作侦听器没有向列表中添加任何内容。如何使其向列表中添加内容?通过调用
list.Add()
                jLabel.setText("Word " + "'" + text + "'" + " was found " + search_count + " time(s) in the list");



        if (text.length() == 0) {

                jLabel.setText("Please enter a word - The total number of words in the list are: " + count);

            }
        }

    }
}