Как конфертировать из Canvas в JPanel?
Я хочу использовать JPanel для отображения содержимого игры, так как теперь я мог использовать canvas. Это то, что у меня есть.
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.image.BufferStrategy;
public class Game extends Canvas implements Runnable, KeyListener {
static boolean isRunning ;
public static boolean enter = false;
public static final int WIDTH = 640, HEIGHT = 480;
public static final String TITLE = "PA - CO";
private static Thread thread;
public static Player player;
public static Level level;
public static SpriteSheet spriteSheet;
public Game() {
Dimension dimension = new Dimension(Game.WIDTH, Game.HEIGHT);
setPreferredSize(dimension);
setMaximumSize(dimension);
setMinimumSize(dimension);
setVisible(true);
addKeyListener(this);
player = new Player(Game.WIDTH / 2, Game.HEIGHT / 2);
level = new Level("/map/map.png");
spriteSheet = new SpriteSheet("/sprites/sprites.png");
new Texture();
}
// ...other code related to keyListener and Thread
private void render() {
BufferStrategy bs = getBufferStrategy();
if (bs == null) {
createBufferStrategy(3);
return;//not needed;
}
Graphics g = bs.getDrawGraphics();
g.setColor(Color.BLACK);
g.fillRect(0, 0, Game.WIDTH, Game.HEIGHT);
player.render(g);
level.render(g);
g.dispose();
bs.show();
}
public static void main(String arg[]) {
new GameFrame();
}
}
Я попытался расширить класс JPanel, однако получил много ошибок. Один из которых с буферной стратегией. Я знаю, что у JPanel есть свой собственный буфер, но я не уверен, как реализовать теорию.