错误 eventqueue.java_线程“AWT-EventQueue-0”中的异常java.lang.NullPointerException [duplicate]...
这个问题在这里已有答案:
我知道这个异常被问到的频率,我已经阅读了很多关于这个问题的线索,但我仍然不知道为什么这个错误总是出现,当我删除'mf'变量时,它确实有效,但没有显示图片起来 .
代码 . 名称的游戏“AWT-EventQueue-0”java.lang.NullPointerException java.lang.NullPointerException(game.java:118) . 代码.MettigelsNightmare . (game.java:105) . (MettigelsNightmare.java) :14)at code.MettigelsNightmare $ 1.run(MettigelsNightmare.java:31)at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)at at java.awt.EventQueue.access $ 700(EventQueue.java:97)java.awt.EventQueue $ 3.run(EventQueue.java:709)java.awt.EventQueue $ 3.run(EventQueue.java:703)at java . java.security.ProtectionDomain上的security.AccessController.doPrivileged(本机方法)$ JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76),位于java.awt.EventDispatchThread.pumpOneEventForFilters的java.awt.EventQueue.dispatchEvent(EventQueue.java:726) EventDispatchThread.java:201)java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventD) ispatchThread.java:105)java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) )
这就是代码:包代码;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
import javax.swing.Timer;
public class game extends JPanel implements ActionListener {
private static final long serialVersionUID = 1L;
private static int width = 1920;
private static int height = 1000;
private Image kopfR;
private Image kopfL;
private Image kopfO;
private Image kopfU;
private Image mann;
private Image frau;
private Image mf[];
private Image shootIMG_L;
private Image shootIMG_R;
private Image shootIMG_O;
private Image shootIMG_U;
private int tail_amount = 3;
private static int snake_width = 50;
private static int x;
private static int y;
private static int mY[] = new int[width * height / (snake_width * snake_width)];
private static int mX[] = new int[width * height / (snake_width * snake_width)];
private int timerspeed = 250;
private int points = 0;
private static int shootX;
private static int shootY;
public static int shootD = -50;
/*
* 0 = left 1 = right 2 = up 3 = down
*/
public static int direction;
public static int running;
public static Timer t;
public game() {
addKeyListener(new KeyBinds());
setPreferredSize(new Dimension(width, height));
setFocusable(true);
setBackground(Color.DARK_GRAY);
setVisible(true);
ImageIcon icon_mann = new ImageIcon("assets/mann.png");
ImageIcon icon_frau = new ImageIcon("assets/frau.png");
ImageIcon icon_headL = new ImageIcon("assets/spielerlinks.png");
ImageIcon icon_headR = new ImageIcon("assets/spielerrechts.png");
ImageIcon icon_headO = new ImageIcon("assets/spieleroben.png");
ImageIcon icon_headU = new ImageIcon("assets/spielerunten.png");
ImageIcon icon_shootL = new ImageIcon("assets/plinks.png");
ImageIcon icon_shootR = new ImageIcon("assets/prechts.png");
ImageIcon icon_shootO = new ImageIcon("assets/poben.png");
ImageIcon icon_shootU = new ImageIcon("assets/punten.png");
mann = icon_mann.getImage();
frau = icon_frau.getImage();
kopfL = icon_headL.getImage();
kopfR = icon_headR.getImage();
kopfO = icon_headO.getImage();
kopfU = icon_headU.getImage();
shootIMG_L = icon_shootL.getImage();
shootIMG_R = icon_shootR.getImage();
shootIMG_O = icon_shootO.getImage();
shootIMG_U = icon_shootU.getImage();
for (int i = 0; i < tail_amount; i++) {
x = 500 - i * snake_width;
y = 400;
}
running = 1;
t = new Timer(timerspeed, this);
t.start();
spawn_a_point();
}
private void spawn_a_point() {
if (mann != null) {
for (int i = 1; i < 30; i++) {
int r = new Random().nextInt(2) + 1;
if (r == 1) {
mf[i] = mann;
} else {
mf[i] = frau;
}
int random_x = (int) (Math.random() * 39);
mX[i] = random_x * snake_width;
int random_y = (int) (Math.random() * 19);
mY[i] = random_y * snake_width;
}
}
}
@Override
public void actionPerformed(ActionEvent e) {
if (running == 1) {
check_shoot();
check_death();
get_a_point();
move();
move_shoot();
}
repaint();
}
private void move_shoot() {
switch (shootD) {
case 0:
shootX -= snake_width;
break;
case 1:
shootX += snake_width;
break;
case 2:
shootY -= snake_width;
break;
case 3:
shootY += snake_width;
break;
default:
break;
}
}
static void shoot() {
shootX = x;
shootY = y;
switch (shootD) {
case 0:
shootX -= snake_width;
break;
case 1:
shootX += snake_width;
break;
case 2:
shootY -= snake_width;
break;
case 3:
shootY += snake_width;
break;
default:
break;
}
}
public void check_shoot() {
for (int i = 0; i < 30; i++) {
if (shootX == mX[i] && shootY == mY[i]) {
timerspeed -= 30;
points++;
}
}
}
private void move() {
/*
* 0 = left 1 = right 2 = up 3 = down
*/
switch (direction) {
case 0:
x -= snake_width;
break;
case 1:
x += snake_width;
break;
case 2:
y -= snake_width;
break;
case 3:
y += snake_width;
break;
default:
break;
}
}
private void check_death() {
if (y >= height || x >= width || y < 0 || x < 0) {
running = 0;
}
if (running == 0 || running == 2) {
t.stop();
}
}
private void get_a_point() {
for (int i = 0; i < 30; i++) {
if (x == mX[i] && y == mY[i]) {
timerspeed -= 30;
points++;
mX[i] = 5000;
}
}
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
if (running == 1) {
if (shootD == 0) {
g.drawImage(shootIMG_L, shootX, shootY, this);
} else if (shootD == 1) {
g.drawImage(shootIMG_R, shootX, shootY, this);
} else if (shootD == 2) {
g.drawImage(shootIMG_O, shootX, shootY, this);
} else if (shootD == 3) {
g.drawImage(shootIMG_U, shootX, shootY, this);
}
for (int i = 0; i < 30; i++) {
g.drawImage(mf[i], mX[i], mY[i], this);
}
Font fa = new Font("Calibri", Font.BOLD, 50);
g.setColor(Color.GREEN);
g.setFont(fa);
g.drawString("" + points, 960, 50);
/*
* 0 = left; 1 = right; 2 = up; 3 = down;
*/
if (direction == 0) {
g.drawImage(kopfL, x, y, this);
} else if (direction == 1) {
g.drawImage(kopfR, x, y, this);
} else if (direction == 2) {
g.drawImage(kopfO, x, y, this);
} else if (direction == 3) {
g.drawImage(kopfU, x, y, this);
}
Toolkit.getDefaultToolkit().sync();
} else if (running == 0) {
Font f = new Font("Calibri", Font.BOLD, 40);
g.setColor(Color.RED);
g.setFont(f);
g.drawString("Du hast verloren!", 450, height / 2);
} else {
Font f = new Font("Calibri", Font.BOLD, 20);
g.setColor(Color.RED);
g.setFont(f);
g.drawString("Mettigels Nightmare ist pausiert!", 460, height / 2);
g.drawString("Mit ENTER kannst du weiterspielen", 433, height / 2 + 20);
}
}
}
错误 eventqueue.java_线程“AWT-EventQueue-0”中的异常java.lang.NullPointerException [duplicate]...相关推荐
- JAVA awt eventqueue_线程“AWT-EventQueue-1”中的异常java.lang.NullPointerException
嗨,我收到错误 Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException at P6.itemSt ...
- java.线程池 线程数_如何在线程“ main”中修复异常java.lang.NoClassDefFoundError:Java中的org / slf4j / LoggerFactory...
java.线程池 线程数 此错误表示您的代码或您在应用程序中使用的任何外部库都在使用SLF4J库 (一个开放源代码日志记录库),但无法找到所需的JAR文件,例如slf4j-api-1.7.2.jar因 ...
- 如何在线程“ main”中修复异常java.lang.NoClassDefFoundError:Java中的org / slf4j / LoggerFactory...
此错误表示您的代码或您在应用程序中使用的任何外部库都在使用SLF4J库 (一个开放源代码日志记录库),但无法找到所需的JAR文件,例如slf4j-api-1.7.2.jar因此它是在线程" ...
- SpringBoot中运行测试:java.lang.NullPointerException
问题展示: SpringBoot中运行测试类报:java.lang.NullPointerException 问题描述: 提示:这里描述项目中遇到的问题: 在SpingBoot中当我们在它原有的测试基 ...
- java xml出错,Java xml出现错误 javax.xml.transform.TransformerException: java.lang.NullPointerException...
Java xml出现错误 javax.xml.transform.TransformerException: java.lang.NullPointerException解决办法: 利用Java操作X ...
- Java xml出现错误 javax.xml.transform.TransformerException: java.lang.NullPointerException
转自:https://www.jb51.net/article/98644.htm Java xml出现错误 javax.xml.transform.TransformerException: jav ...
- 无法部署应用目录 [D:\Tomcat\apache-tomcat-9.0.44\webapps\ROOT]java.lang.IllegalStateException: 启动子级时出错
起因是刚开始导入一个web项目,没有导入Tomcat的jar包,导致找不到javax.servlet.http 和 javax.servlet.jsp,看了下网上的建议,将Tomcat7.0\lib下 ...
- java怎么通过坐标定位控件_[已解决] 可以定位到控件, 但每次执行 click () 方法会报空指针错误 java.lang.NullPointerException...
问题描述: 正常启动 appium 服务, 在 eclipse 中右键 Run as TestNG Test 之后, apk 可以正常安装并启动, 但是总会在 btn.click();处报错, 错误为 ...
- java.lang.NullPointerException错误的解决方案
一.java.lang.NullPointerException出现的几种原因以及解决 java.lang.NullPointerException空指针异常是容易出现的问题,这个问题一般情况都是不细 ...
最新文章
- XtraBackup
- REVERSE-COMPETITION-HGAME2022-Week2
- u盘序列号读取工具_硬盘读写工具
- WSO2 WSF/CPP 网络服务开发例子1--HELLO
- mos管结电容等效模型_MOS管等效模型
- PythonTip(1)
- 【620】【信息管理学基础】【真题背诵】
- net idautomationhc39m条形码字体生成条形码
- c语言abs作用是什么意思,c语言中函数abs和fabs有什么区别?
- Delphi Thread 线程2
- mysql用sql新增字段
- access随系统启动的宏,Access创建宏
- 基于运营商的室内定位技术应用及探究--新导智能
- “作环保的程序员,从不用百度开始”(转自酷壳)
- Win11的两个实用技巧系列之加载驱动失败怎么办、占用内存高的解决办法
- 苹果系统和安卓系统的区别_#你喜欢苹果系统还是安卓系统?
- 鸿蒙系统是开放系统还是封闭系统,鸿蒙系统三挑战:应用如何兼容,生态怎么搭建,开放还是闭合...
- Fast DDS入门二、Fast DDS在Windows平台的编译安装
- GridView中DataSourceID和DataSource替换
- 梅花香自创新来|众享比特连获2020上海区块链年度盛典三项大奖