Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.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 我想知道我的代码是否遗漏了什么,或者我是否写错了什么_Java_Window - Fatal编程技术网

Java 我想知道我的代码是否遗漏了什么,或者我是否写错了什么

Java 我想知道我的代码是否遗漏了什么,或者我是否写错了什么,java,window,Java,Window,我为特定游戏的窗口编写了代码。而且,由于某些原因,我的板不能显示在窗口上,除非我使窗口的大小可调整。每次我运行我的程序,我必须调整我的窗口一点,我的董事会将显示。希望你能理解,希望你能帮助我 代码: 我不确定是否需要在这里编写板的代码,所以我只写了第一行 import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; import java.awt.event.KeyList

我为特定游戏的窗口编写了代码。而且,由于某些原因,我的板不能显示在窗口上,除非我使窗口的大小可调整。每次我运行我的程序,我必须调整我的窗口一点,我的董事会将显示。希望你能理解,希望你能帮助我

代码:

我不确定是否需要在这里编写板的代码,所以我只写了第一行

import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JPanel;
import javax.swing.Timer;
import java.awt.event.ActionListener;

public class Board extends JPanel implements KeyListener
{
    private static final long serialVersionUID = 1L;


    private BufferedImage blocks;
    private Shape[] shapes = new Shape[7];
    private Shape currentShape;
    private Timer timer;

    private final int blockSize = 30;
    private final int boardWidth = 10, boardHeight = 20;
    private int [][] board = new int [boardHeight][boardWidth];
    private final int FBS = 60;
    private final int delay = 1000/60;

    private boolean gameOver = false;

...

提前谢谢

Java有一个线程负责查看事件,因此您应该在那里更改视图属性:

 public static void main(String[] args) 
 {
    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
             new Window();
        }
  }
}

应该使用SwingUtilities.invokeLater在事件线程上更改视图,所以请更改您的main以使用它。非常感谢。我很感激。
 public static void main(String[] args) 
 {
    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
             new Window();
        }
  }
}