Diskuze: Chyba vykreslování ve swing

Java Java Chyba vykreslování ve swing

Avatar
Jakub Giesler:

Čus lidi dělám si vlastní variaci na framework ale zasekl jsem se u třídy startdrawing(); a stopdrawing(); a píše mi to chybu : source not found : zde zdoják

package GreenFramework.core;

import java.awt.Color;
import java.awt.Graphics;

public class test extends Core {
        private static final long serialVersionUID = 1L;

        private Screen screen = new Screen();

        public void init() {
                super.setScreenSize(800, 600);
                super.StartGame();
                screen.setFrame(0, "TestFramework", this, true, false);
        }

        public static void main(String[] args) {
                test t = new test();
                t.init();
        }

        public void Draw() {
                Graphics draw = this.getGraph();
                StartDrawing();

                draw.setColor(Color.GREEN);
                draw.fillRect(25, 25, 45, 45);

                StopDrawing();
        }
        public void Update() { }

}

a třída s které dědí

package GreenFramework.core;

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

public abstract class Core extends Canvas implements Runnable {
        private static final long serialVersionUID = 1L;

        private boolean isRunning;

        public Core() {
                super();
                isRunning = false;
                this.setScreenSize(800, 600);
        }

        public void setScreenSize(int xx, int yy) {
                this.setSize(new Dimension(xx, yy));
        }

        public void run() {
                long last = System.nanoTime();
                long output = System.currentTimeMillis();
                double unprocessedTicks = 0;
                double nsPerTicks = Math.pow(10, 9) / 60;
                int fps = 0, ups = 0;

                while (isRunning) {
                        long now = System.nanoTime();
                        unprocessedTicks += (now - last) / nsPerTicks;
                        last = now;

                        while (unprocessedTicks >= 1) {
                                ups++;
                                unprocessedTicks--;
                                Update();
                        }

                        fps++;
                        Draw();

                        if (System.currentTimeMillis() - output > 1000) {
                                output += 1000;
                                System.out.println("FPS: " + fps + ", UPS: " + ups);
                                fps = ups = 0;
                        }
                }
        }

        private BufferStrategy buffer;
        private Graphics draw;
        public void StartDrawing() {
                buffer = this.getBufferStrategy();
                if (buffer == null) {
                        this.createBufferStrategy(3);
                        return;
                }
                draw = buffer.getDrawGraphics();
        }

        public void StopDrawing() {
                draw.dispose();
                buffer.show();
        }

        public Graphics getGraph() {
                return draw;
        }

        abstract void Draw();
        abstract void Update();

        public void StartGame() {
                isRunning = true;
                Thread t = new Thread(this);
                t.start();
        }

}

a třída screen

package GreenFramework.core;

import java.awt.BorderLayout;

import javax.swing.JFrame;

public class Screen extends JFrame{
        private static final long serialVersionUID = 1L;

        public void setFrame(int operation, String title, Core c, boolean visible, boolean resizable) {
                this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                this.setLayout(new BorderLayout());
                this.setTitle(title);
                this.add(c);
                this.pack();
                this.setResizable(resizable);
                this.setVisible(visible);
                this.setLocationRelativeTo(null);
        }

}

Please pomozte.

Odpovědět 6.7.2014 11:52
C#?....Pff pro padavky,,..Java?....Jsi můj člověk! :D
Avatar
Monarezio
Redaktor
Avatar
Monarezio:

Mělo by ti to napsat i na jaký řádce to spadne, prosím napiš jí sem... :)

Editováno 6.7.2014 12:00
Nahoru Odpovědět 6.7.2014 11:59
First, solve the problem. Then, write the code.
Avatar
Jakub Giesler:

řádek s bufferstrategy[me|]6133[­/me|]

Editováno 6.7.2014 13:57
Nahoru Odpovědět 6.7.2014 13:56
C#?....Pff pro padavky,,..Java?....Jsi můj člověk! :D
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.