图形不显示

时间:2017-02-13 15:30:06

标签: java graphics

我正在尝试制作测试应用程序。首先我制作了基本的东西(框架,图形,纹理)。当我运行应用程序时,它显示一个空窗口。起初我以为它来自我的纹理类。但是当我试图将颜色设置为黑色时,它也没有用。这是我的代码:

package Main;

import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferStrategy;

import javax.swing.JFrame;

import Audio.MusicPlayer;
import MultiThreading.ThreadPool;
import Textures.Textures;

public class Main extends Canvas implements Runnable{

private static final long serialVersionUID = 1L;

private boolean running = true;
private Thread thread;
public static Main test = new Main();
public static final int height = 842 ;
public static final int width = 595;
public static final int scale = 1;

private Textures background;

public void init(){
    background = new Textures("Test paper");
    System.out.println("Initiating...");
}

public void run() {
    init();
    System.out.println("Starting...\nReady!");
    running = true; 
    requestFocus();
    while (running) {
        //System.out.println("Running...");
        render();
         try {
                Thread.sleep(1);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
    }
    stop();
}

public void render(){
    BufferStrategy bs = getBufferStrategy();
    if(bs == null){
        createBufferStrategy(3);
        return;
    }

    Graphics g = bs.getDrawGraphics();


    g.dispose();
    bs.show();

    g.setColor(new Color(0, 11, 54));
    g.fillRect(0, 0, width, height);
    background.render(g, 100, 100);
}

private synchronized void stop() {
    if (!running) return; 
    running = false;
    try {
        thread.join();
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    System.exit(1); 
}

public static void main (String args[])
{

    ThreadPool pool = new ThreadPool(2);
    JFrame frame = new JFrame("Stilul gotic si stilul renascentist");

    frame.add(test);
    frame.setSize(width / scale, height / scale);
    frame.setFocusable(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLocationRelativeTo(null);
    frame.setResizable(false);
    frame.setVisible(true);
    frame.pack();
    MusicPlayer audio = new MusicPlayer("J");
    pool.runTask(test); 
    pool.runTask(audio);


    pool.join();
}

}

我检查了多线程,所以它不能从那里(音频文件正在运行,我为游戏使用了相同的类)。另外,在控制台中没有任何错误...... 任何人都可以帮助我吗?

0 个答案:

没有答案