From 466dd14287dde6ac5afc6c90379590699dbc6dc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustav=20S=C3=B6rn=C3=A4s?= Date: Mon, 1 Mar 2021 16:32:56 +0100 Subject: show image on startup --- src/se/liu/gusso230/tetris/Board.java | 4 ++-- src/se/liu/gusso230/tetris/ImageComponent.java | 18 ++++++++++++++++++ src/se/liu/gusso230/tetris/TetrisComponent.java | 2 ++ src/se/liu/gusso230/tetris/TetrisViewer.java | 14 ++++++++++++-- 4 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 src/se/liu/gusso230/tetris/ImageComponent.java diff --git a/src/se/liu/gusso230/tetris/Board.java b/src/se/liu/gusso230/tetris/Board.java index 9b423cf..d43d3a4 100644 --- a/src/se/liu/gusso230/tetris/Board.java +++ b/src/se/liu/gusso230/tetris/Board.java @@ -6,7 +6,8 @@ import java.util.Random; public class Board { private enum GameState { - RUNNING, GAME_OVER, + RUNNING, + GAME_OVER, } private GameState state = GameState.RUNNING; @@ -37,7 +38,6 @@ public class Board { } public void tick() { - System.out.println("tick"); if (state == GameState.RUNNING) { if (falling == null) { createFalling(); diff --git a/src/se/liu/gusso230/tetris/ImageComponent.java b/src/se/liu/gusso230/tetris/ImageComponent.java new file mode 100644 index 0000000..98a09f1 --- /dev/null +++ b/src/se/liu/gusso230/tetris/ImageComponent.java @@ -0,0 +1,18 @@ +package se.liu.gusso230.tetris; + +import javax.swing.*; +import java.awt.*; + +public class ImageComponent extends JComponent { + ImageIcon icon; + + public ImageComponent(String name) { + icon = new ImageIcon(ClassLoader.getSystemResource(name)); + } + + public void paintComponent(final Graphics g) { + final Graphics2D g2d = (Graphics2D) g; + g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + icon.paintIcon(this, g, 0, 0); + } +} diff --git a/src/se/liu/gusso230/tetris/TetrisComponent.java b/src/se/liu/gusso230/tetris/TetrisComponent.java index f358e7a..2c10941 100644 --- a/src/se/liu/gusso230/tetris/TetrisComponent.java +++ b/src/se/liu/gusso230/tetris/TetrisComponent.java @@ -62,6 +62,8 @@ public class TetrisComponent extends JComponent implements BoardListener { g.fillRect(x * (TILE_SIZE + TILE_GAP), y * (TILE_SIZE + TILE_GAP), TILE_SIZE, TILE_SIZE); } } + + requestFocus(); } public Color getColor(int x, int y) { diff --git a/src/se/liu/gusso230/tetris/TetrisViewer.java b/src/se/liu/gusso230/tetris/TetrisViewer.java index 4139188..369991e 100644 --- a/src/se/liu/gusso230/tetris/TetrisViewer.java +++ b/src/se/liu/gusso230/tetris/TetrisViewer.java @@ -6,9 +6,11 @@ import java.awt.event.ActionEvent; public class TetrisViewer { private JMenuBar menuBar; + private ImageComponent imageComponent; private TetrisComponent tetrisComponent; public TetrisViewer(Board board) { + imageComponent = new ImageComponent("images/hello_world.png"); tetrisComponent = new TetrisComponent(board); board.addListener(tetrisComponent); } @@ -37,11 +39,19 @@ public class TetrisViewer { public void show() { JFrame frame = new JFrame("Tetris"); + frame.setJMenuBar(setupMenuBar()); frame.setLayout(new BorderLayout()); + frame.setVisible(true); + + frame.add(imageComponent, BorderLayout.CENTER); + frame.pack(); + try { + Thread.sleep(2000); + } catch (InterruptedException ignored) {} + + frame.remove(imageComponent); frame.add(tetrisComponent, BorderLayout.CENTER); - frame.setJMenuBar(setupMenuBar()); frame.pack(); - frame.setVisible(true); update(); } -- cgit v1.2.1