Java - 错误:没有为add(int,java.lang.String)找到合适的方法

时间:2014-04-24 02:52:23

标签: java add

我正在做家庭作业,我被困住了。在我的代码中,我认为我应该打开一个gui窗口,允许我输入"插入文本编号"。此时,信息不会传到任何地方,但一旦我遇到这个问题就会进入链表。对于行tt.add(index,element)我得到两个相同的错误;而我似乎无法超越它。错误是"没有为add(int,java.lang.String)"找到合适的方法。代码如下,请指教。澄清 - 这不应该是方法错误,因为这是一个链表。不应该涉及任何方法。

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

public class TopTenList extends JFrame
{
private TopTenList tt;
private JTextArea listView;
private JTextField cmdTextField;
private JTextField resultTextField;

// This is the code for the GUI Window
public TopTenList()
{
    tt = new TopTenList();
    listView = new JTextArea();
    cmdTextField = new JTextField();


    //Create panel and label for the command text field
    JPanel cmdPanel = new JPanel(new GridLayout(1,2));
    cmdPanel.add(new JLabel ("Enter New Score: "));
    cmdPanel.add(cmdTextField);
    add(cmdPanel, BorderLayout.NORTH);
    cmdTextField.addActionListener(new CmdTextListener());

    // Set up the frame
    setTitle("Top Ten Scoreholders");  // Window Title
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Behavior on close
    pack();
    setVisible(true);  // Display the window


    // Put the textArea in the center of the frame
    add(listView);
    listView.setEditable(false);
    listView.setBackground(Color.WHITE);
}

// Private class that responds to the new score entered by the user
private class CmdTextListener implements ActionListener
{
    public void actionPerformed(ActionEvent evt)
    {
        String cmdText = cmdTextField.getText();
        Scanner sc = new Scanner(cmdText);
        String cmd = sc.next();
        if (cmd.equals("insert"))
        {
            if(sc.hasNextInt())
            {
                // add index element
                int index=sc.nextInt();
                String element = sc.next();
                tt.add(index, element);

            }
            else
            {
                // add element
                String element = sc.next();
                tt.add(element);
            }
            listView.setText(tt.toString());
            pack();
            return;
        }
    }
}


   // The main method to run the top ten list

 public static void main(String [ ] args)
{
    new TopTenList();
} 
}

2 个答案:

答案 0 :(得分:1)

您从未在任何一个班级中使用add(int i, Object o)方法。您将tt视为列表,如果不是这样您需要创建该方法,或者您可以尝试实现List类。

答案 1 :(得分:0)

TopTenList从JFrame继承并且间接来自java.awt.Container和java.awt.Component的各种add()方法不提供添加String对象,只提供其他Component对象。

我想也许你想要一个带有javax.swing.DefaultListModel的javax.swing.JList,因为DefaultListModel.add()方法会获取你想要的参数。