我正在做家庭作业,我被困住了。在我的代码中,我认为我应该打开一个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();
}
}
答案 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()方法会获取你想要的参数。