计时器和 JFrame 错误

2024-03-11

我正在制作一个带有计时器和 JFrame 的游戏(以及许多其他东西,但只有这两个会引起问题),在运行下面的片段后,我收到了一个奇怪的错误。至少对于之前从未使用过这些类的我来说是这样。

开始执行这个

private static GameView window;
private static Timer time;
public static void main(String args[])
{
    window = new GameView(800,600);
    window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    window.setVisible(true);

    time = new Timer();
    time.schedule( new TimerTask(){
        public void run(){GameState.update(); 
        window.paintComponents(null);}
        },0, 40);

}

这称为:

public void paintComponents (Graphics g)
{

    for(Bullet j : GameState.getEnBullets()){
        g.drawImage(j.getImage(),j.getX(), j.getY(), null);}
    for(Enemy j : GameState.getEnemies()){
        g.drawImage(j.getImage(),j.getX(), j.getY(), null);}
    for(Bullet j : GameState.getPlayBullets()){
        g.drawImage(j.getImage(),j.getX(), j.getY(), null);}
    this.paint(g);
}

这是错误:

Exception in thread "Timer-0" java.lang.NullPointerException
    at sun.awt.SunGraphicsCallback.runComponents(Unknown Source)
    at java.awt.Container.paint(Unknown Source)
    at java.awt.Window.paint(Unknown Source)
    at Game.GameView.paintComponents(GameView.java:59)
    at Game.GameController$1.run(GameController.java:39)
    at java.util.TimerThread.mainLoop(Unknown Source)
    at java.util.TimerThread.run(Unknown Source)

我还得到一个空白的 JFrame 窗口(GameView 扩展了 JFrame)。


你得到 NPE 因为你通过了null作为图形window.paintComponents(null);然后你打电话g.drawImage(j.getImage(),j.getX(), j.getY(), null);其中 g 为空。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计时器和 JFrame 错误 的相关文章

  • 如何将 JSpinner 的值设置为特定日期

    我有一个JSpinner我添加到JPanel我想将其时间设置为 GregorianCalendar calendar JSpinner spinner new JSpinner spinner setModel model pom add
  • 在命令行java中突出显示文本[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一项任务是重新创建 unix cal 程序 除了一部分之外 相当简单 今天 它突出显示了该数字 我不知道该怎么做 关于如何在 Ja
  • JavaFX 2.0 FXML 子窗口

    经过多次搜索我发现了这个问题如何创建 javafx 2 0 应用程序 MDI https stackoverflow com questions 10915388 how to create a javafx 2 0 application
  • 在 Java 中从 SOAPMessage 获取原始 XML

    我已经在 J AX WS 中设置了 SOAP WebServiceProvider 但我无法弄清楚如何从 SOAPMessage 或任何 Node 对象获取原始 XML 下面是我现在获得的代码示例 以及我试图获取 XML 的位置 WebSe
  • 迁移到Java 9或更高版本时是否需要切换到模块?

    我们目前正在从 Java 8 迁移到 Java 11 但是 升级我们的服务并没有我们预期的那么痛苦 我们基本上只需要更改我们的版本号build gradle文件和服务都顺利启动并运行 我们升级了库以及使用这些库的 微 服务 到目前为止没有问
  • 如何将现有的 SQLite3 数据库导入 Room?

    好吧 我在桌面上使用 SQLite3 创建了一个只需要读取的某些信息的数据库 我正在制作的应用程序不需要在此表中插入或删除信息 我在 Room 数据库层上做了相当多的谷歌搜索 所有文档都需要在构建应用程序时在 Room 中创建一个新的数据库
  • JTextField 和 JTextArea

    JTextField 和 JTextArea 有什么不同 是否可以在一个班级中使用这两个班级 总之 JTextField 是单行文本字段 而 JTextArea 可以跨越多行 文档中清楚地解释了这些差异 文本区 http docs orac
  • OpenNLP 与斯坦福 CoreNLP

    我一直在对这两个包进行一些比较 但不确定该往哪个方向走 我简单地寻找的是 命名实体识别 人 地点 组织等 性别识别 一个不错的训练 API 据我所知 OpenNLP 和斯坦福 CoreNLP 提供了非常相似的功能 然而 Stanford C
  • 当 JMS Prod 位于辅助 POJO 类中时,如何在事务中包含 JMS Producer

    简短的问题 有没有办法强制无状态 EJB 调用的 POJO 存在于 EJB 的上下文中 以便事务和资源注入可以在 POJO 中工作 具体来说 在我想要做的事情的上下文中 如何在 EJB 的事务中包含 POJO JMS 生产者 该生产者在调用
  • Java - JPanel 内有边距和 JTextArea

    我想创建这样的东西 主面板有其边距 x 并且 TextArea 位于该面板的中心 几乎填满了面板 底部是另一个具有自定义尺寸 高度 y 的面板 可以使用某些快捷方式将其切换为可见和不可见 底部面板有 FlowLayout 和几个元素 问题是
  • LocalDate 减去 period 得到错误的结果

    LocalDate减去一个Period 如 28年1个月27天 得到错误的结果 但减去一个Period 只有天单位 如 10282 天 得到正确的结果 有什么需要注意的吗 public static void main String arg
  • java.lang.Object的hashCode具体使用的算法是什么

    中使用的算法是什么JVM实施java lang Object的隐含的hashCode 方法 OpenJDK or Oracle JDK答案中首选 它依赖于实现 并且在很大程度上 该算法是entirely取决于实施 只要它是一致的 但是 根据
  • MongoDB java 驱动程序 3.0 在身份验证时无法捕获异常

    我超级卡住o 0 在尝试通过 Java 驱动程序进行身份验证时 存在捕获异常的问题 正如你可能会看到的Throwable类不工作 private MongoClient mongoClient private MongoDatabase m
  • 配置jmxremote时无法正常停止tomcat

    我添加了一个jmxremotecatalina bat中的配置 set JAVA OPTS Dcom sun management jmxremote port 9004 Dcom sun management jmxremote ssl
  • Jetty Plugin 9启动不喜欢icu4j-2.6.1.jar

    我对 mortbay 的 Maven jetty 插件 6 有相同的配置
  • Java String ReplaceAll 方法给出非法重复错误?

    我有一个字符串 当我尝试运行时replaceAll方法 我收到这个奇怪的错误 String str something op str str replaceAll o n it works fine str str replaceAll n
  • 传递 Android DialogFragment 参数时,onCreateDialog 捆绑参数意外为 null

    我正在尝试使用 DialogFragment 在 Android 中显示一个基本对话框 并使用对话框消息的参数 如中所述StackOverflow线程 https stackoverflow com questions 15459209 p
  • 如何将库添加到 LIBGDX 项目的依赖项 gradle

    一切都在问题中 我已经尝试了在 SO 和其他网站中找到的所有答案 但没有运气 这就是我迄今为止尝试过的 adding compile fileTree dir lib include jar 到我的 build gradle adding
  • Java 中的微分方程

    我正在尝试用java创建一个简单的SIR流行病模型模拟程序 基本上 SIR 由三个微分方程组定义 S t l t S t I t l t S t g t I t R t g t I t S 易感人群 I 感染人群 R 康复人群 l t c
  • 如何使用 Jest 从 ElasticSearch 获取索引列表

    我正在尝试使用 Jest 检索索引列表 但我只得到 Stats statistics new Stats Builder build result client execute statistics 如何从结果中检索索引列表 除了统计之外

随机推荐

  • ODP.NET程序编译

    当我尝试使用 ODP NET 执行创建过程时 我收到 ORA 24344 成功但出现编译错误 但是 当我在 SQL Developer 中运行相同的语句时 它编译成功 有谁知道我需要更改什么才能编译我的程序 是字符集问题吗 我使用的是 Or
  • Apache Wink Accept() 失败并出现 NullPointerException

    我正在使用 Wink 1 2 在 jBoss EAP 6 1 7 2 1Final 上部署 RESTful Web 应用程序 并在所有请求上出现以下异常 b JBWEB000070 exception b pre java lang Nul
  • JSF“记住我”选项

    在其他语言中 当用户登录时 您可以将 cookie 的过期日期设置为与今天相差甚远 并且您可以实现此目的 我如何在 JSF2 中实现这个 我有一个 jsf sessionscoped bean 但是如何才能长时间维持这个会话呢 您也可以使用
  • 如何修复Hyperledger Fabric中“执行End-2-End场景失败”的问题?

    我正在尝试运行此处提供的 Fabric 示例 https github com hyperledger fabric samples tree release 1 2 first network https github com hyper
  • 从 Java 创建快捷链接 (.lnk)

    我正在用 Java 编写一个安装程序 启动器 并且需要能够在此过程中在用户桌面上创建快捷方式 我对任何想法都感兴趣 认为这是实现这一目标的最佳方法 我考虑过的一个选择是在 Windows 上使用 VB 脚本并使用本机 shortcut ex
  • 使用阻塞REST请求来实现发布/订阅

    最近 我被要求调查与电话系统供应商集成的可行性 该供应商希望使用 RESTful Web 服务提供电话事件 例如线路振铃 分机应答 呼叫清除 我指出 REST 是一个请求 响应协议 他们正在执行发布 订阅 他们建议的解决方案是发出 HTTP
  • 映射日期时间未转换为正确的格式

    我有这个映射器 在映射逻辑中我将检查属性是否具有属性 CustomDateConverAttribute 如果有 我将调用一个函数将字符串转换为正确的格式 CreateMap
  • 如何取消 HostingEnvironment.QueueBackgroundWorkItem

    有没有办法取消后台任务HostingEnvironment QueueBackgroundWorkItem 有CancellationToken它会通知任务是否被取消 但我该怎么做 参考https msdn microsoft com en
  • Python 无法识别两个相等的字符串

    我在 python 中遇到了一个关于字符串的奇怪问题 我有两个列表 我必须在两个字符串中找到相同的名称 第二个列表是来自之前打开的文件的 readline 这是我的代码 import requests import sys from bs4
  • 将 y 轴网格线添加到 D3 甘特图

    将水平网格线添加到 d3 甘特图的最佳方法是什么这个例子 http bl ocks org baramuyu be8e3005cfcb0aba5f763963c75f3c7e 我最初想制作一个轴并在图表的长度上做刻度线 如这个例子 http
  • 将变量传递给 Mako 模板

    在 Perl 中 通过使用 Template Toolkit 这就是我所做的 Perl my vars name gt Count Edward van Halen tt gt process letters overdrawn vars
  • 通过引用传递参数

    我想问是否可以通过引用将参数传递给脚本函数 即在 C 中执行如下所示的操作 void boo int myint myint 5 int main int t 4 printf d n t t gt 4 boo t printf d n t
  • Angular HttpInterceptor 不更改标头

    我编写了一个 Angular 4 3 6 HttpInterceptor 来添加一些标头字段 但是如果我在调试器中检查它们 标头不会更新 任何想法 import Injectable from angular core import Htt
  • python读取大数据的不同方式

    我正在处理大数据 因此找到一种读取数据的好方法非常重要 我只是对不同的阅读方法有点困惑 1 f gzip open file r for line in f process line how can I process nth line c
  • 更改 Flask/Dash 中的图标

    试图获得favicon加载我遵循了互联网上的建议 server Flask name static folder static app dash Dash external stylesheets external stylesheets
  • Jquery 的选择插件,带有链接插件和选择框

    我是新来的 所以这就是问题 我尝试将所选插件 http harvesthq github com chosen 与链接插件 http www appelsiini net projects chained 一起用于我的选择框 但效果不佳 这
  • 如何配置 virtualenvwrapper 与 pyenv 一起使用

    我正在尝试设置我的 imac mavericks 以便能够轻松切换到不同版本的 python 我使用 rbenv 成功地为 Ruby 项目完成了此操作 并发现 pyenv 正是我在这方面所寻找的 我遇到的问题是使用 pyenv 创建虚拟环境
  • 如何在 git 存储库的特定状态下显示文件的内容?

    我想显示 git 存储库特定状态下的路径给出的文件的内容 我没有成功尝试这个 git show f825334150cd4bc8f46656b2daa8fa1e92f7796d Katana source Git GitLocalBranc
  • 如何使用 IEnumerable<> 类型创建 CodeFunction2?

    我确实需要创建如下所示的内容 我正在构建 2 个类 第一个类是名称为 tableNameAsSingular 即 AddressEntity 的类 在我的第二个工作类中 我需要具有如下所示的内容 public IEnumerable
  • 计时器和 JFrame 错误

    我正在制作一个带有计时器和 JFrame 的游戏 以及许多其他东西 但只有这两个会引起问题 在运行下面的片段后 我收到了一个奇怪的错误 至少对于之前从未使用过这些类的我来说是这样 开始执行这个 private static GameView