嘿,我試圖從一個簡單游戲的教程中復制游戲代碼,并且只是為它創建環境。現在的問題是我復制了代碼并檢查了幾次,但它沒有顯示。代碼本身似乎沒有任何錯誤,控制臺只顯示一些我不太明白的“終止的游戲 [Java 應用程式] C:/Users....”。
package com.tutorial.main;
import java.awt.Canvas;
public class Game extends Canvas implements Runnable{
private static final long serialVersionUID = 1550691097823471818L;
public static final int WIDTH = 640, HEIGTH = WIDTH / 12 * 9;
public Game() {
new Window(WIDTH, HEIGTH, "Let′s build a Game!", this);
}
public synchronized void start() {
}
public void run() {
}
public static void main(String []args ) {
}
}
和班級
package com.tutorial.main;
import java.awt.Canvas;
import java.awt.Dimension;
import javax.swing.JFrame;
public class Window extends Canvas{
enter code here
private static final long serialVersionUID = -240840600533728354L;
public Window(int width, int height, String title, Game game) {
JFrame frame = new JFrame();
frame.setPreferredSize(new Dimension(width, height));
frame.setMinimumSize(new Dimension(width, height));
frame.setMaximumSize(new Dimension(width, height));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setLocation(null);
frame.add(game);
frame.setVisible(true);
game.start();
}
}
uj5u.com熱心網友回復:
只需為類 Game 創建一個物件。
new Game();
也會frame.setLocation(null);引發錯誤。
uj5u.com熱心網友回復:
這就是為什么盲目地復制粘貼代碼并不是一個好主意。你有兩個班級。我假設一個 Game 類將處理游戲邏輯和一個 Window 函式,它將處理與 GUI 相關的。在您的 Game 類中,您有 main 函式,這是 java 將在您啟動程式時查找的函式。但它是空的。這就是您的程式終止的原因。您應該定義一個 Game 類的實體,該實體將觸發 Game 建構式,您的視窗將被啟動,然后呼叫您需要的任何方法。
uj5u.com熱心網友回復:
new Game();在 main 方法中添加一個。而不是frame.setLocation(null);做`frame.setRelativeLocation(null);
uj5u.com熱心網友回復:
現在可以了,謝謝大家!問題不在于 setLocationRelativetoNull(null); 但是我忘記在 main 方法中創建游戲類的物件。并且沒有使用標題,因為我創建了 Jframe frame = new Jframe(); 而不是 Jframe frame = new Jframe(title);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/438414.html
