diff --git a/app/src/main/java/org/App.java b/app/src/main/java/org/App.java index b4c4a7a..0267e55 100644 --- a/app/src/main/java/org/App.java +++ b/app/src/main/java/org/App.java @@ -4,16 +4,17 @@ package org; import org.Models.Grille; +import org.Views.VueControle; import org.Views.VueGrille; +import org.Views.VueTetris; public class App { - public String getGreeting() { - return "Hello World!"; - } public static void main(String[] args) { - System.out.println(new App().getGreeting()); Grille grille = new Grille(10, 10); - VueGrille vueGrille = new VueGrille(grille); + //VueGrille vueGrille = new VueGrille(grille); + VueTetris vueTetris = new VueTetris(grille); + + } } \ No newline at end of file diff --git a/app/src/main/java/org/Views/VueControle.java b/app/src/main/java/org/Views/VueControle.java new file mode 100644 index 0000000..9bbadde --- /dev/null +++ b/app/src/main/java/org/Views/VueControle.java @@ -0,0 +1,54 @@ +package org.Views; + +import javax.swing.*; +import java.awt.*; + +public class VueControle extends JPanel { + private JLabel scoreLabel; + private JPanel nextPiecePanel; + private JButton pauseButton; + + public VueControle() { + setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); + setBackground(Color.gray); + setPreferredSize(new Dimension(200, 600)); + + //SCORE + scoreLabel = new JLabel("Score: 0"); + scoreLabel.setForeground(Color.white); + scoreLabel.setFont(new Font("Arial", Font.PLAIN, 16)); + scoreLabel.setAlignmentX(Component.CENTER_ALIGNMENT); + + //NEXT PIECE + nextPiecePanel = new JPanel(); + nextPiecePanel.setPreferredSize(new Dimension(100, 100)); + nextPiecePanel.setMaximumSize(new Dimension(100, 100)); + nextPiecePanel.setBackground(Color.LIGHT_GRAY); + nextPiecePanel.setAlignmentX(Component.CENTER_ALIGNMENT); + + //PAUSE BUTTON + pauseButton = new JButton("Pause"); + pauseButton.setAlignmentX(Component.CENTER_ALIGNMENT); + + add(Box.createVerticalStrut(20)); // Add some space at the top + add(scoreLabel); + add(Box.createVerticalStrut(20)); // Add some space between score and next piece + add(nextPiecePanel); + add(Box.createVerticalStrut(20)); // Add some space between next piece and button + add(pauseButton); + + //setVisible(true); + } + + public void setScore(int score) { + scoreLabel.setText("Score: " + score); + } + + public JButton getPauseButton() { + return pauseButton; + } + + public JPanel getNextPiecePanel() { + return nextPiecePanel; + } +} \ No newline at end of file diff --git a/app/src/main/java/org/Views/VueGrille.java b/app/src/main/java/org/Views/VueGrille.java index 4af9838..eeb4c23 100644 --- a/app/src/main/java/org/Views/VueGrille.java +++ b/app/src/main/java/org/Views/VueGrille.java @@ -7,19 +7,20 @@ import javax.swing.border.Border; import org.Models.Grille; -import java.awt.Color; -import java.awt.GridLayout; +import java.awt.*; -public class VueGrille extends JFrame { +public class VueGrille extends JPanel { private JPanel grillePanel; private int tailleJPanel = 1000; private Grille grille; public VueGrille(Grille grille) { this.grille = grille; + setLayout(new BorderLayout()); grillePanel = new JPanel(new GridLayout(grille.getNbLignes(), grille.getNbColonnes())); - setSize(tailleJPanel, tailleJPanel); - setContentPane(grillePanel); + //setSize(tailleJPanel, tailleJPanel); + add(grillePanel, BorderLayout.CENTER); + //setContentPane(grillePanel); initialiserVueGrille(); } @@ -33,10 +34,10 @@ public class VueGrille extends JFrame { grillePanel.add(caseG); } } - setVisible(true); + //setVisible(true); - setDefaultCloseOperation(EXIT_ON_CLOSE); - setTitle("TETRIS"); + //setDefaultCloseOperation(EXIT_ON_CLOSE); + //setTitle("TETRIS"); } diff --git a/app/src/main/java/org/Views/VueTetris.java b/app/src/main/java/org/Views/VueTetris.java new file mode 100644 index 0000000..9bea88d --- /dev/null +++ b/app/src/main/java/org/Views/VueTetris.java @@ -0,0 +1,27 @@ +package org.Views; + +import org.Models.Grille; + +import javax.swing.*; +import java.awt.*; + +public class VueTetris extends JFrame { + public VueTetris (Grille grille){ + SwingUtilities.invokeLater(() -> { + VueGrille vueGrille = new VueGrille(grille); + VueControle vueControle = new VueControle(); + + //Fenetre principale + JFrame fenetrePrincipale = new JFrame("Tetris"); + fenetrePrincipale.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + fenetrePrincipale.setLayout(new BorderLayout()); + + fenetrePrincipale.add(vueGrille, BorderLayout.CENTER); + fenetrePrincipale.add(vueControle, BorderLayout.EAST); + + fenetrePrincipale.setSize(1000, 800); + fenetrePrincipale.setLocationRelativeTo(null); + fenetrePrincipale.setVisible(true); + }); + } +}