Java 什么原因导致没有这样的元素异常

Java 什么原因导致没有这样的元素异常,java,exception,crash,logic,conditional,Java,Exception,Crash,Logic,Conditional,在我的代码中,当我输入一个单词时,我得到了一个无此类元素的异常。它确实正确地输出了单词和刽子手,但这样做后也会崩溃。这是什么原因造成的?我如何修复它? 以下是错误的开始: Exception in thread "AWT-EventQueue-1" java.util.NoSuchElementException: No line found at java.util.Scanner.nextLine(Unknown Source) at Hangman.paint(Hangma

在我的代码中,当我输入一个单词时,我得到了一个无此类元素的异常。它确实正确地输出了单词和刽子手,但这样做后也会崩溃。这是什么原因造成的?我如何修复它? 以下是错误的开始:

Exception in thread "AWT-EventQueue-1" java.util.NoSuchElementException: No line found
    at java.util.Scanner.nextLine(Unknown Source)
    at Hangman.paint(Hangman.java:50)
    at javax.swing.RepaintManager$3.run(Unknown Source)
    at javax.swing.RepaintManager$3.run(Unknown Source) 
还有,修改我的代码,使计算机每次猜测它会画出刽子手的一部分,而不是在执行程序时全部出现,这会很难吗

import java.util.Scanner;
import javax.swing.JApplet;
import java.awt.*;

public class Hangman extends JApplet
{
    public void paint (Graphics Page)
    {
                //gallows
                Page.drawLine(0,300,20,300);
                Page.drawLine(10,40,10,300);
                Page.drawLine(10,40,80,40);
                Page.drawLine(80,40,80,55);

                //torso
                Page.drawOval(50,55,50,55);
                Page.drawOval(50,100,50,100);
                //left arm and hand
                Page.drawLine(50,150,40,110);
                Page.drawLine(40,110, 45,100);
                Page.drawLine(40,110, 25,100);
                Page.drawLine(40,110, 25,115);


                //right arm and hand
                Page.drawLine(100,150,120,110);
                Page.drawLine(120,110, 115,95);
                Page.drawLine(120,110, 125,95);
                Page.drawLine(120,110, 135,115);

                //left  leg and foot
                Page.drawLine(80,200,100,250);
                Page.drawLine(100,250, 115,260);


                //right leg and foot
                Page.drawLine(75,200,60,250);
                Page.drawLine(60,250,45,260);




     Scanner in = new Scanner(System.in);
     System.out.println("Enter a 4 or 5 letter word and the computer will play hangman against you!");
     String word = in.nextLine();


     char[] letter = word.toCharArray();


     for (int i = 0; i < letter.length; i++) {
             letter[i] = 'a';
     }


     for (int i = 0; i < word.length(); i++){
         for (int j = 48; j < 122; j++) {

                     if (letter[i] == word.charAt(i)) { 
                             break; 
                     } else {
                             letter[i] = (char)((int) j + 1);
                     }
             }
     }
     System.out.println("Your word is: ");

     for (char letters : letter) {
             System.out.print(letters);
     }
     in.close();
}

}
import java.util.Scanner;
导入javax.swing.JApplet;
导入java.awt.*;
公共级刽子手
{
公共空间绘制(图形页)
{
//绞刑架
第页.拉线(0300,20300);
页码.抽绳(10,40,10300);
第页.抽绳(10,40,80,40);
第页.抽绳(80,40,80,55);
//躯干
第页:drawOval(50,55,50,55);
第2页:drawOval(50100,50100);
//左臂和手
第页.抽绳(50150,40110);
第页.抽绳(4011045100);
页码:抽绳(40110251000);
页码:抽绳(4011025115);
//右臂和右手
第页.抽绳(100150120110);
第页.抽绳(120110115,95);
第页.抽绳(120110125,95);
第页.抽绳(120110135115);
//左腿和脚
第页.抽绳(80200100250);
第页.抽绳(100250、115260);
//右腿和脚
页码.抽绳(75200,60250);
第页.抽绳(60250,45260);
扫描仪输入=新扫描仪(系统输入);
System.out.println(“输入一个4或5个字母的单词,计算机将扮演刽子手来对付你!”);
String word=in.nextLine();
char[]字母=word.toCharArray();
for(int i=0;i
在执行in.nextLine之前,请尝试检查是否有下一行

while(in.hasNextLine())
{
    word = in.nextline();
}
问题是您正在调用nextLine(),当没有行时它会抛出一个异常,请尝试查看javadoc:


绘制
方法中,在
中执行关闭
。它关闭底层流,下次尝试读取时会产生错误

中关闭与
系统关联的
扫描仪
对象几乎不是一个好主意


From:“当扫描仪关闭时,如果输入源实现可关闭接口,它将关闭输入源。”

您能分享实际的异常消息吗?通常,它会有一个行号,可以提供cluesIt’s相当长,但这里是它的开始:线程“AWT-EventQueue-1”java.util.NoSuchElementException中的异常:在Hangman.paint(Hangman.java:50)的java.util.Scanner.nextLine中找不到任何行,javax.swing.RepaintManager$3.run(未知源)在javax.swing.repaitmanager$3.run(未知源代码)中,您错了。由于OP从
stdin
读取,因此
hasNext
将始终返回
true
。哦,真的吗?好的,谢谢!从一开始我就一直在关闭一切!谢谢你的反馈!它现在运行,但当我输入一个单词时,它会输出两次?输入一个4或5个字母的单词,计算机将扮演刽子手来对付你!嗨,你的单词是:输入一个4或5个字母的单词,电脑就会扮演刽子手来对付你<代码>绘制
方法被多次调用。将刚开始需要发生的所有事情放入
init()
方法中。您需要学习一些
Applet
/
JApplet
基础知识。你可以从这里开始:等等,我很困惑。public void init()在哪里?我试着把它放在最上面,但是我在“}”方面遇到了错误。你是否已经阅读了我提供的链接的教程?