Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.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

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 Swing-repaint和两个for循环给出错误,没有任何提示_Java_Multithreading_Swing_For Loop_Repaint - Fatal编程技术网

带线程的Java Swing-repaint和两个for循环给出错误,没有任何提示

带线程的Java Swing-repaint和两个for循环给出错误,没有任何提示,java,multithreading,swing,for-loop,repaint,Java,Multithreading,Swing,For Loop,Repaint,我有一个小java程序,它有一个二维int数组:私有int[][]块网格; 我想在重绘函数(作为线程定期调用)中用两个for循环捕捉数组的值 有人能帮我吗?检查数组区块网格是否已初始化,是否在drawStar方法的范围内。 drawStar方法中存在空指针异常。 检查可能指向null的调用方的方法,并确保捕获它们(使用try/catch或在调用之前使用如果(x!=null),检查数组blockGrid是否已初始化且在drawStar方法的范围内。 drawStar方法中存在空指针异常。 检查可能

我有一个小java程序,它有一个二维int数组:私有int[][]块网格; 我想在重绘函数(作为线程定期调用)中用两个for循环捕捉数组的值


有人能帮我吗?

检查数组
区块网格
是否已初始化,是否在drawStar方法的范围内。
drawStar
方法中存在空指针异常。
检查可能指向null的调用方的方法,并确保捕获它们(使用
try
/
catch
或在调用之前使用
如果(x!=null)

检查数组
blockGrid
是否已初始化且在drawStar方法的范围内。
drawStar
方法中存在空指针异常。
检查可能指向null的调用方的方法并确保捕获它们(使用
try
/
catch
或在调用之前使用
如果(x!=null)

您确定这是完整的堆栈跟踪吗?我刚刚添加了一些错误消息行。行268是我上面提到的行:System.out.print(blockGrid[(ix)][(iy)]+“| |”);(它没有语法错误……因此我假设它与循环的线程处理有关?显然,我是新手)谢谢-我有点明白了-我确实理解is与数组的定义有关,数组不知何故不指向内存地址。但在前一行中,完全相同的代码正在工作(这意味着数组指向内存位置IMHO).我还定义了数组,每个元素上有0,有两个for循环:int[][]blockGrid=new int[21][19];for(int ix=0;ixIt现在可以工作了-我将定义公开为public static public static int[][]blockGrid=new int[21][19];TY谢谢你的帮助!!你确定这是完整的堆栈跟踪吗?我刚刚添加了更多的错误消息行。行268就是我上面提到的行:System.out.print(blockGrid[(ix)][(iy)]+“| |”);(它没有语法错误…所以我假设它与循环的线程处理有关?显然,我是新手)谢谢-我有点明白了-我确实理解is与数组的定义有关,数组不知何故不指向内存地址。但在前一行中,完全相同的代码正在工作(这意味着数组指向内存位置IMHO)。我还使用两个for循环定义了每个元素上都有0的数组:int[][]blockGrid=new int[21][19];for(int ix=0;ixIt现在可以工作了-我将定义公开为static public static int[][]blockGrid=new int[21][19];TY以获得您的帮助!!它现在可以工作了-我将定义公开为static public static int[]blockGrid=new int[21][19];谢谢你的帮助!!没问题,只要看看你的代码,确保将blockGrid设置为静态是合理的,而不是以某种方式传递它现在就可以了-我将定义公开为static public static int[][]blockGrid=new int[21][19];TY感谢您的帮助!!没问题,只需查看您的代码,确保将blockGrid设置为静态并以某种方式传递它是合理的
@Override
public void paintComponent(Graphics g) {
    super.paintComponent(g);

    drawthings(g);
}

private void drawthings(Graphics g) {


    for(int ix=0;ix<20;ix++)
    {
        for(int iy=0;iy<18;iy++)
        {
            System.out.print( blockGrid[(ix)][(iy)] + " ||");
        }
    }
    at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:848)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:848)
    at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:823)
    at java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:772)
    at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1884)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at iota_cafe3.Board.drawStar(Board.java:268)
    at iota_cafe3.Board.paintComponent(Board.java:255)
    at java.desktop/javax.swing.JComponent.paint(JComponent.java:1074)
    at java.desktop/javax.swing.JComponent.paintToOffscreen(JComponent.java:5255)
    at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBufferedImpl(RepaintManager.java:1643)
    at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1618)
    at java.desktop/javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1556)
    at java.desktop/javax.swing.RepaintManager.paint(RepaintManager.java:1323)
    at java.desktop/javax.swing.JComponent._paintImmediately(JComponent.java:5203)
    at java.desktop/javax.swing.JComponent.paintImmediately(JComponent.java:5013)
    at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:865)
    at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:848)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:848)
    at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:823)
    at java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:772)
    at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1884)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at iota_cafe3.Board.drawStar(Board.java:268)
    at iota_cafe3.Board.paintComponent(Board.java:255)
    at java.desktop/javax.swing.JComponent.paint(JComponent.java:1074)
    at java.desktop/javax.swing.JComponent.paintToOffscreen(JComponent.java:5255)
    at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBufferedImpl(RepaintManager.java:1643)
    at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1618)
    at java.desktop/javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1556)
    at java.desktop/javax.swing.RepaintManager.paint(RepaintManager.java:1323)
    at java.desktop/javax.swing.JComponent._paintImmediately(JComponent.java:5203)
    at java.desktop/javax.swing.JComponent.paintImmediately(JComponent.java:5013)
    at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:865)
    at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:848)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:848)
    at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:823)
    at java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:772)
    at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1884)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)