Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java在操作事件侦听器中非法启动表达式_Java_Actionlistener_Actionevent - Fatal编程技术网

Java在操作事件侦听器中非法启动表达式

Java在操作事件侦听器中非法启动表达式,java,actionlistener,actionevent,Java,Actionlistener,Actionevent,我开始学习Java,并尝试创建一个前十名列表。我不断得到表达式和“;”的非法开头第78、110和118号线的预期值 78:公共插入(字符串名称,整数分数) 110:公共布尔值isOnList(字符串第一,字符串第二) 118:公共字符串toString() 如果我使它成为一个不是动作事件监听器的类,那么这段代码将编译,但是如果它是一个事件监听器,那么我会得到这些错误。我们将非常感谢您对本代码的任何帮助 import java.awt.*; import java.awt.event.*; imp

我开始学习Java,并尝试创建一个前十名列表。我不断得到表达式和“;”的非法开头第78、110和118号线的预期值

78:公共插入(字符串名称,整数分数) 110:公共布尔值isOnList(字符串第一,字符串第二) 118:公共字符串toString()

如果我使它成为一个不是动作事件监听器的类,那么这段代码将编译,但是如果它是一个事件监听器,那么我会得到这些错误。我们将非常感谢您对本代码的任何帮助

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

public class TopTenList extends JFrame
{
private TopTenList tt;
private JTextArea listView;
private JTextField name;
private JTextField score;
private LinkedList<String> scores;
private JButton enterButton;



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

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


    //Create panel and label for the Name and score text fields
    JPanel namePanel = new JPanel(new GridLayout(2,2));
    namePanel.add(new JLabel ("Enter User Name: "));
    namePanel.add(name);
    namePanel.add(new JLabel ("Enter New Score: "));
    namePanel.add(score);
    add(namePanel, BorderLayout.NORTH);

    //Create Enter score button
    enterButton = new JButton ("Enter");
    add(enterButton, BorderLayout.SOUTH);

    //Add action listener to the button
    enterButton.addActionListener(new enterButtonListener());



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

   }

    // Create the Linked List
   public void TopTenList()
   {
       scores = new LinkedList<String>();
   }

   // Populate the list
   private class enterButtonListener implements ActionLister
   {

   public void actionPerformed(ActionEvent e)
   {
       public insert(String name, Integer score)
        {
            String newScore = name + " "+score.toString();

            if(scores.isEmpty())
            {
                scores.add(newScore);
                return;
            }
            for (int i=0; i<=scores.size(); i++)
            {
                if(i==scores.size())
                {
                    scores.add(newScore);
                    break;
                }
                if (isOnList(newScore, scores.get(i)))
                {
                    scores.add(i,newScore);
                    break;
                }
            }

            // Shrink the list to the top ten scores
            while (scores.size()>10)
            {
                scores.remove(10);
            }
        }

       // method to evaluate placement on score list

       public boolean isOnList (String first, String second)
        {
            Integer firstScore = Integer.parseInt(first.substring(first.lastIndexOf(' ')+1));
            Integer secondScore = Integer.parseInt(second.substring(second.lastIndexOf(' ')+1));
            return firstScore > secondScore;
        }

        // make the list for display
        public String toString()
        {
            String scoreList = "";
            for (int i = 0; i <scores.size(); i++)
            {
                scoreList = scoreList + scores.get(i)+"\n";
            }
            return scoreList;
        }
   }
   }

    }
import java.awt.*;
导入java.awt.event.*;
导入javax.swing.*;
导入javax.swing.JList;
导入java.util.*;
导入java.util.Scanner;
导入java.util.LinkedList;
公共类TopTenList扩展了JFrame
{
私人TopTenList tt;
私有区域列表视图;
私有JTextField名称;
私人JTextField评分;
私人LinkedList分数;
私有JButton enterButton;
//这是GUI窗口的代码
公共TopTenList()
{
listView=新的JTextArea();
name=新的JTextField();
分数=新的JTextField();
//将文本区域放在框架的中心
添加(列表视图);
listView.setEditable(false);
listView.setBackground(颜色:白色);
//为“名称”和“分数”文本字段创建面板和标签
JPanel名称面板=新JPanel(新网格布局(2,2));
添加(新的JLabel(“输入用户名:”);
名称面板。添加(名称);
添加(新JLabel(“输入新分数”);
名称面板。添加(分数);
添加(名称面板,边框布局。北);
//创建输入分数按钮
enterButton=新的JButton(“回车”);
添加(enterButton,BorderLayout.SOUTH);
//将操作侦听器添加到按钮
addActionListener(新的enterButtonListener());
//架起架子
setTitle(“前十名得分者”);//窗口标题
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭时的行为
包装();
setVisible(true);//显示窗口
}
//创建链接列表
公共无效TopTenList()
{
分数=新的LinkedList();
}
//填充列表
私有类enterButtonListener实现ActionLister
{
已执行的公共无效操作(操作事件e)
{
公共插入(字符串名称,整数分数)
{
字符串newScore=name+“”+score.toString();
if(scores.isEmpty())
{
添加(新闻核心);
返回;
}
对于(int i=0;i10)
{
分数。删除(10);
}
}
//评估分数表上的位置的方法
公共布尔值isOnList(字符串第一,字符串第二)
{
整数firstScore=Integer.parseInt(first.substring(first.lastIndexOf(“”)+1));
Integer secondScore=Integer.parseInt(second.substring(second.lastIndexOf(“”)+1));
返回firstScore>secondScore;
}
//列出要显示的列表
公共字符串toString()
{
字符串scoreList=“”;
对于(int i=0;i
这种语法在java中没有任何意义。您不能以这种方式在另一个函数中定义一个函数。您希望将代码重新排列为:

public void actionPerformed(ActionEvent e)
{ // handle the ActionEvent here   }

public insert(String name, Integer score)
{...}
public boolean isOnList (String first, String second)
{...}
public String toString()
{...}

你正在定义方法和方法体中的构造函数之类的东西。这是不允许的。请重新阅读教程。代码太多了……你能把它缩小到显示错误的几行吗?谢谢-这是我遗漏的部分,我一次尝试做的太多了。因为我真正想要执行的操作是插入我需要找出如何重写它,以便在LinkedListy的侦听器中工作,这有帮助-代码现在将编译。但是,当它运行时,会出现一个AWT-EVENTQueue-Q java.lang.NullPointerException,并且该行仍然引用插入方法。关于如何修复这个问题,有什么想法吗?这里没有足够的信息我的第一个想法是,insert(name,score)可能会使用空分数调用,并且在insert函数的第一行中的语句score.toString()上会出现一个NullPointerException,但如果没有看到调用代码,我无法确定。
public void actionPerformed(ActionEvent e)
{ // handle the ActionEvent here   }

public insert(String name, Integer score)
{...}
public boolean isOnList (String first, String second)
{...}
public String toString()
{...}