Java应用程序冻结
我对java很新。非常。就像我基本上从今天开始。我有其他语言的编程知识,如c,c + +,PHP,JavaScript等,但我无法弄清楚这一点。我开始在Youtube上观看关于如何用Java制作视频游戏的教程(来自ChernoProject的视频),但大约有7集,我遇到了一个问题,我们有我们的窗口,我们画了一个黑色的矩形,并且该应用程序冻结了我的整个计算机。这里是我的代码:Java应用程序冻结
package com.darksun.theonetruemike.rain;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.image.BufferStrategy;
import javax.swing.JFrame;
public class Game extends Canvas implements Runnable{
private static final long serialVersionUID = 1L;
public static int width = 300;
public static int height = width/16 * 9;
public static int scale = 3;
private Thread thread;
private JFrame frame;
private boolean running = false;
public Game(){
Dimension size = new Dimension(width * scale, height * scale);
setPreferredSize(size);
frame = new JFrame();
}
public synchronized void start(){
running = true;
thread = new Thread(this, "Display");
thread.start();
}
public synchronized void stop(){
running = false;
try{
thread.join();
} catch(InterruptedException e){
e.printStackTrace();
}
}
public void run(){
while(running){
update();
render();
}
}
public void update(){
}
public void render(){
BufferStrategy bs = getBufferStrategy();
if(bs == null){
createBufferStrategy(3);
return;
}
Graphics g = bs.getDrawGraphics();
g.setColor(Color.BLACK);
g.fillRect(0, 0, getWidth(), getHeight());
g.dispose();
bs.show();
}
public static void main(String args[]){
Game game = new Game();
game.frame.setResizable(false);
game.frame.setTitle("Rain");
game.frame.add(game);
game.frame.pack();
game.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
game.frame.setLocationRelativeTo(null);
game.frame.setVisible(true);
game.start();
}
}
我使用Eclipse来使这个项目(高度违背我的意愿),而当我按下Debug按钮,出现的窗口,我的电脑死机,产生具有强制退出整个计算机。如果可以,请提供帮助,并提前感谢您的帮助!
因为我有低信誉,我将发布作为回答我的意见,尽量不要-rep
我复制你的代码到NetBeans中,看起来像窗口黑色控制台,什么都不会发生,但它不冻结,但JVM正在使用CPU的50%左右
是的,我想通了,这是因为我的电脑couldn'处理进程的数量。谢谢,但它帮助 – 2016-12-07 00:20:47
我很高兴我可以帮助:) – Akos 2016-12-12 09:02:45
你怎么知道它冻结了,它似乎没有做任何事情。也。你主循环可能会超支,这可能会消耗你的CPU周期... – MadProgrammer 2015-03-08 20:36:41
我知道它冻结,因为我按下关闭按钮,它需要大约5分钟无所事事,然后我不得不强制退出我的电脑 – 2015-03-08 20:38:55
什么是你试图用线程来完成? – lacraig2 2015-03-08 20:49:29