[英]I would like to know if my code is missing something, or if I wrote something incorrectly
我為特定游戲的 window 編寫了代碼。 而且,由於某種原因,我的電路板無法顯示在 window 上,除非我使 window 可調整大小。 每次我運行我的程序時,我都必須稍微調整我的 window 的大小才能顯示我的電路板。 希望你能理解並希望你能幫助我。
代碼:
import javax.swing.JFrame;
public class Window
{
public static final int WIDTH = 307, HEIGHT = 637;
private JFrame window;
private Board board;
public Window()
{
window = new JFrame("TETRIS");
window.setSize(WIDTH, HEIGHT);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setResizable(true);
window.setLocationRelativeTo(null);
window.setVisible(true);
board = new Board();
window.add(board);
window.addKeyListener(board);
}
public static void main(String[] args)
{
new Window();
}
}
我不確定是否需要在這里編寫板的代碼,所以我只寫了第一行。
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();
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.