- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果您曾经看到这些行并且像我一样被弄糊涂了,那么这就是它们的意思。
Thread[AWT-EventQueue-0](暂停(异常 NullPointerException))
EventDispatchTread.run() 行:不可用 [局部变量不可用]
这并不是说变量不可用,因为它们隐藏在某个潮湿的图书馆中的神秘面纱后面。不不,他们只是超出了范围!这仍然是你的错,你仍然必须找到 null,不,你不能责怪图书馆。重要的一课!
作为初学者,对我来说最令人沮丧的事情之一就是图书馆!这是一种爱恨交织的关系:一方面,他们让我做一些我通常不会理解如何使用我理解的代码的事情,另一方面,因为我不完全理解他们,他们有时会抛出一个 Spanner 在其他方面工作正常的代码!这是因为我不明白使用这些库时可能发生的错误,因为我没有编写它们,并且因为当其中一个导入开始出现问题时,eclipse 并没有给我很多帮助...
这就是问题所在:我一直在使用 java.awt.event 处理屏幕上的一堆 JButton。当我使用我制作的其中一个按钮时出现错误。错误是:
Thread[AWT-EventQueue-0](暂停(异常 NullPointerException))
EventDispatchTread.run() 行:不可用 [局部变量不可用]
这是什么意思?是什么原因造成的?我不好意思发布代码,但如果你能忍受尝试破译我糟糕的风格,这里是似乎导致抛出此错误的方法。
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
String name;
code...
if(cmd.equals("Play")) {
name = field.getText();
card = getCard(name);
if(card != null) {
if(rules.zoneHasCard(card, rules.hand)) {
display.updateStatusMessage(rules.play(card));
field.setText("");
display.updateHand(rules.zoneList("hand"));
display.updateDiscard(rules.zoneList("Discard")); // This is the error here! The discard Zone was empty!
}
else {
field.setText("You do not have " + card.getName());
field.selectAll();
}
}
else {
field.setText("That cardname is unused");
field.selectAll();
}
}
}
最佳答案
欢迎编写 GUI 代码的复杂性。
当您运行 Swing 程序时,会创建一个称为事件调度线程的后台线程。例如,当用户单击 JButton 时,JButton 使用此事件调度线程创建并触发事件。因此得名:它是调度事件的线程!
您的代码:
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
String name;
// more code...
}
由此事件调度线程调用,因此您的代码可以处理该事件。
在您的代码中的某处,您正试图对当前等于 null 的变量执行某些操作。错误消息告诉您,“嘿,在事件分派(dispatch)线程上运行一些代码时,我遇到了 NullPointerException”在您的代码中。
为什么您没有收到更多信息?可能您将 Eclipse 配置为在编译时不包含调试信息?
现在,我建议在您的 actionPerformed 方法中添加一些行来显示变量的状态:
System.out.println("field = " + field);
System.out.println("rules = " + rules);
System.out.println("display = " + display);
看看这是否显示任何空值。
即使 NullPointerException 来自库,堆栈跟踪也会显示代码的哪一行调用了该库。但前提是您已将 Eclipse 配置为生成调试信息。
从长远来看,通过 Sun 的 Swing 教程来了解有关这些问题的更多信息。
关于java - 这是什么 java.awt.event 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/343435/
AWT-EventQueue 线程和 AWT-Shutdown 线程没有在我们的应用程序中关闭。有没有一种调试技术可以找出它们不存在的原因?有什么特别的东西要寻找吗? 最佳答案 如果你的意思是关闭所有
java.awt.* 和 java.awt.event.* 有什么区别? 最佳答案 这只是两个不同的包。 当您说import java.awt.*时,它仅导入那些完全属于java.awt包的类,而不是
我正在将 aadhar 集成到 liferay 中。我尝试了这个链接 https://developer.uidai.gov.in/site/book/export/html/18 所以我想将其集成到
我想知道如何确定 Java.awt.Rectangle 是否包含特定 Java.awt.Color 的像素。我一直在到处寻找,但找不到任何关于此的信息,甚至找不到任何可能的信息。 所以我想知道如何确定
我试图在组件和图像之间切换面板的内容,它适用于组件: imgpanel.removeAll(); Component comp; if ((comp = player.getVisualCompone
我在使用 JAVA 编码时遇到一些错误,我一直在尝试解决这个问题,也试图找到其他有同样问题的人并修复它,但没有任何效果... 嗯..这是代码 package ca.vanzeben.game;
我想我可以尝试一下 JAXB 来处理存储和恢复设置。但即使是“最简单”的例子我也遇到了麻烦: import java.awt.Point; public class Config { public
这个问题已经有答案了: Import package.* vs import package.SpecificType [duplicate] (10 个回答) 已关闭 7 年前。 在我现在正在进行的
private static byte[] get_byte_data(BufferedImage image) { //WritableRaster raster = image.get
是否有可能获得标准 AWT Cursor以位图图像的形式(例如 BufferedImage )或任何可在 Graphics2D 上绘制的图像?例如,文本光标 new Cursor(Cursor.TEX
我的代码中有三个点,我想填充它们之间的区域,或者换句话说,在 3 个点之间绘制并填充一个三角形。 我想过简单地用 for 循环绘制线条(从 x1 到 x2),但我认为这不会有效,是否有其他更有效的方法
我正在制作一个小脚本,我使用鼠标键来节省我的工作时间。我可以正确、良好地使用鼠标键。但是,当使用 java.awt.Robot 和 java.awt.event.KeyEvent 时,鼠标键基本上被忽
我正在尝试在 scala 中使用 java awt 来制作一个简单的桌面应用程序。我已经在它上面工作了几天,没有任何问题,直到我有 2 天没有碰它,当我回来时,我得到一个 java.lang.NoCl
我在 VisualVM 和线程 View 中监视一个 JavaFX 程序,不断有 AWT-EventQueue-0 和 AWT-Shutdown 线程被创建和销毁。这是正常行为吗?这是什么原因? 最佳
我需要将 java.awt.geom.Area 或 java.awt.Shape 转换为 java.awt.Polygon。我所知道的是:isSingular = true、isPolygonal =
我正在重新使用 Java 并审查我的一些旧代码,并且我看到了很多我已经完成的地方 import javax.swing.*; import java.awt.*; 或者实际上从 swing/awt 包
晚上, 我在玩一个小的 swing 应用程序,我添加了一个按钮来响应按下。因此我需要实现 ActionListener。我已经添加了这一行: import java.awt.*; 但它告诉我找不到“A
我有这个 java 代码: Editor() { javax.swing.SwingUtilities.invokeLater(new Runnable() { pub
请帮我解决这个问题 sun.awt.image.ToolkitImage 无法转换为 java.awt.image.BufferedImage if (shape.hasImage())
嗨 Stackoverflow 的 friend 们 我最近将 Jenkins 服务器配置到 Apache Tomcat 7.0.42我制作的程序是将 jenkins.war 文件部署到 tomcat
我是一名优秀的程序员,十分优秀!