Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: Chyba vykreslování ve swing

Java Java Chyba vykreslování ve swing

Aktivity (1)
Avatar
Jakub Giesler:6.7.2014 11:52

Č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
Samuel Kodytek
Redaktor
Avatar
Samuel Kodytek:6.7.2014 11:59

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
Programming is thinking, not typing.
Avatar
Jakub Giesler:6.7.2014 13:56

řá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.