Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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.util.NoSuchElementException帮助迷宫游戏_Java_Multithreading - Fatal编程技术网

“线程中的异常”;“主要”;java.util.NoSuchElementException帮助迷宫游戏

“线程中的异常”;“主要”;java.util.NoSuchElementException帮助迷宫游戏,java,multithreading,Java,Multithreading,我在复制教程后开始制作游戏时,尝试加载该游戏时出现了该错误: Exception in thread "main" java.util.NoSuchElementException at java.util.Scanner.throwFor(Unknown Source) at java.util.Scanner.next(Unknown Source) at Maze.Map.readFile(Map.java:59) at Maze.Map.<init>(Map.java:28)

我在复制教程后开始制作游戏时,尝试加载该游戏时出现了该错误:

Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at Maze.Map.readFile(Map.java:59)
at Maze.Map.<init>(Map.java:28)
at Maze.Board.<init>(Board.java:16)
at Maze.Maze.<init>(Maze.java:18)
at Maze.Maze.main(Maze.java:7)
Board.java

package Maze;

import java.awt.Graphics;
import java.awt.event.*;

import javax.swing.*;

public class Board extends JPanel implements ActionListener{

private Timer timer;

private Map m;

public Board(){

    m = new Map();

    timer = new Timer(25, this);
    timer.start();
}


public void actionPerformed(ActionEvent e){
    repaint();

}

public void paint(Graphics g){
    super.paint(g);

    for(int y = 0;y < 14; y++){
        for(int x = 0;x < 14; x++){
            if(m.getMap(x , y).equals("g")){
                g.drawImage(m.getGrass(), x * 32, y * 32, null);

            }
            if(m.getMap(x , y).equals("g")){
                g.drawImage(m.getWall(), x * 32, y * 32, null);

            }

        }
    }
}
}
package迷宫;
导入java.awt.Graphics;
导入java.awt.event.*;
导入javax.swing.*;
公共类板扩展JPanel实现ActionListener{
私人定时器;
私有地图m;
公共委员会(){
m=新映射();
定时器=新定时器(25,此);
timer.start();
}
已执行的公共无效操作(操作事件e){
重新油漆();
}
公共空间涂料(图g){
超级油漆(g);
对于(int y=0;y<14;y++){
对于(int x=0;x<14;x++){
if(m.getMap(x,y).等于(“g”)){
g、 drawImage(m.getGrass(),x*32,y*32,null);
}
if(m.getMap(x,y).等于(“g”)){
g、 drawImage(m.getWall(),x*32,y*32,null);
}
}
}
}
}
java

 package Maze;

import java.awt.*;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.*;


import javax.swing.ImageIcon;

public class Map {

private Scanner m;

private String Map[] = new String[14];

private Image grass,
              wall;



public Map(){

    ImageIcon img = new ImageIcon("C://grass.png");
    grass = img.getImage();
    img = new ImageIcon("C://wall.png");
    wall = img.getImage();

    openFile();
    readFile();
    closeFile();
}

public Image getGrass(){
    return grass;
}

public Image getWall(){
    return wall;
}
public String getMap(int x, int y){
    String index = Map[y].substring(x,x + 1);
    return index;

}

public void openFile(){

    try {
        m = new Scanner(new File("C://map.txt"));
    } catch (FileNotFoundException e) {


    }

}

public void readFile(){
    while(m.hasNext()){
        for(int i = 0; i < 14; i++){
            Map[i] = m.next();
        }
    }
}

public void closeFile(){
    m.close();


}

}   
package迷宫;
导入java.awt.*;
导入java.io.File;
导入java.io.FileNotFoundException;
导入java.util.*;
导入javax.swing.ImageIcon;
公共类地图{
专用扫描器m;
私有字符串映射[]=新字符串[14];
私人形象草,
墙
公共地图(){
ImageIcon img=新的ImageIcon(“C://grass.png”);
grass=img.getImage();
img=newImageIcon(“C://wall.png”);
wall=img.getImage();
openFile();
readFile();
closeFile();
}
公众形象{
还草;
}
公共映像getWall(){
回流墙;
}
公共字符串getMap(int x,int y){
字符串索引=Map[y]。子字符串(x,x+1);
收益指数;
}
公共void openFile(){
试一试{
m=新扫描仪(新文件(“C://map.txt”);
}catch(filenotfounde异常){
}
}
公共void readFile(){
while(m.hasNext()){
对于(int i=0;i<14;i++){
Map[i]=m.next();
}
}
}
公共文件(){
m、 close();
}
}   

提前谢谢你的帮助。很抱歉以前没有发布代码,但我以前从未在任何地方发布过代码:/

是一个RuntimeException,java中的不同类(如迭代器、枚举器、扫描程序或StringTokenizer)可以引发该异常。如果底层数据结构没有Java抛出的任何元素“Java.util.NoSuchElementException”,那么所有这些类都有获取下一个元素或下一个标记的方法。最常见的例子是在hashmap上迭代,而不检查是否有任何元素,这就是为什么建议在迭代器上调用next()之前使用hashNext()


请发布代码以解决此问题。

是一个运行时异常,java中的不同类(如迭代器、枚举器、扫描程序或StringTokenizer)可以引发该异常。如果底层数据结构没有Java抛出的任何元素“Java.util.NoSuchElementException”,那么所有这些类都有获取下一个元素或下一个标记的方法。最常见的例子是在hashmap上迭代,而不检查是否有任何元素,这就是为什么建议在迭代器上调用next()之前使用hashNext()


请发布代码以解决此问题。

如果要迭代任何集合,请避免使用迭代器习惯用法,但更现代的用法是:

for(T t : collection){
    // do something with t
}
其中
集合
集合


这可能会修复您的错误和您尚未找到的其他错误。

如果您正在迭代任何集合,请避免使用迭代器习惯用法,但更现代的用法是:

for(T t : collection){
    // do something with t
}
其中
集合
集合


这可能会修复您的错误和您尚未找到的其他错误。

您正在调用
hasNext()
据

Throwns NoSuchElementException-如果没有更多令牌可用

所以像这样更改您的
readFile()
方法

    public void readFile()
    {        
        for(int i = 0; i < 14; i++)
        {
           while(m.hasNext()){
              Map[i] = m.next();
           }
       }
    }
public void readFile()
{        
对于(int i=0;i<14;i++)
{
while(m.hasNext()){
Map[i]=m.next();
}
}
}

您正在调用
hasNext()
据

Throwns NoSuchElementException-如果没有更多令牌可用

所以像这样更改您的
readFile()
方法

    public void readFile()
    {        
        for(int i = 0; i < 14; i++)
        {
           while(m.hasNext()){
              Map[i] = m.next();
           }
       }
    }
public void readFile()
{        
对于(int i=0;i<14;i++)
{
while(m.hasNext()){
Map[i]=m.next();
}
}
}

代码的“其余部分”是什么意思?您尚未向我们显示任何错误。请发布生成此错误的代码。没有它我们无法帮助您。在我看来,它试图加载某种配置文件或某种无效的用户输入。我看不到代码,我的水晶球都模糊了。。。你能粘贴它吗?你正在呼叫
扫描仪。下一步
在空的
扫描仪上
。问题是什么?代码的“其余部分”是什么意思?您尚未向我们显示任何错误。请发布生成此错误的代码。没有它我们无法帮助您。在我看来,它试图加载某种配置文件或某种无效的用户输入。我看不到代码,我的水晶球都模糊了。。。你能粘贴它吗?你正在呼叫
扫描仪。下一步
在空的
扫描仪上
。有什么问题吗?没有,但是屏幕上没有显示,当在教程中出现时,它会出现。屏幕上没有显示,但在视频中确实出现了。救命啊!没有,但是屏幕上没有显示,在教程中,屏幕上没有显示,但在视频中没有显示。救命啊!