diff --git a/Makefile b/Makefile index 9a9a5bd..d5039ac 100644 --- a/Makefile +++ b/Makefile @@ -10,12 +10,15 @@ J = java Main.class : Main.java SudokuGrid.class ${JC} ${JCFLAGS} Main.java -SudokuGrid.class : SudokuGrid.java TextFilter.class +SudokuGrid.class : SudokuGrid.java TextFilter.class SaveButton.class ${JC} ${JCFLAGS} SudokuGrid.java TextFilter.class : TextFilter.java ${JC} ${JCFLAGS} TextFilter.java +SaveButton.class : SaveButton.java + ${JC} ${JCFLAGS} SaveButton.java + ### REGLES OPTIONNELLES ### diff --git a/SaveButton.java b/SaveButton.java new file mode 100644 index 0000000..5a7e357 --- /dev/null +++ b/SaveButton.java @@ -0,0 +1,59 @@ +import javax.swing.*; +import javax.swing.filechooser.FileNameExtensionFilter; +import java.awt.*; +import java.awt.event.*; +import java.io.*; + + + + +public class SaveButton implements ActionListener { + + private int GRID_SIZE; + private JTextField[][] grid; + + public SaveButton(int GRID_SIZE, JTextField[][] grid ) { + + this.GRID_SIZE = GRID_SIZE; + + this.grid = grid; + } + + + @Override + + public void actionPerformed(ActionEvent e) { + if (GrilleValide()) { + saveFichier(); + } else { + JOptionPane.showMessageDialog(null, "La grille n'est pas valide.", "Erreur", JOptionPane.ERROR_MESSAGE); + } + } + + //vérifier si la grille est valide + public boolean GrilleValide() { + // à completer + return true; + } + + + public void saveFichier() { + try { + PrintWriter affichage = new PrintWriter(new FileWriter("GrilleNumero1.txt")); + for (int i = 0; i < GRID_SIZE; i++) { + for (int j = 0; j < GRID_SIZE; j++) { + String value = grid[i][j].getText().isEmpty() ? "0" : grid[i][j].getText(); + affichage.print(value); + } + affichage.println(); + } + affichage.close(); + JOptionPane.showMessageDialog(null, "Grille sauvegardé avec succès.", "Succes", JOptionPane.INFORMATION_MESSAGE); + } catch (IOException e) { + JOptionPane.showMessageDialog(null, "Erreur lors de la sauvegarde de la grille.", "Erreur", JOptionPane.ERROR_MESSAGE); + e.printStackTrace(); + } + } +} + + diff --git a/SudokuGrid.java b/SudokuGrid.java index e221500..ba28be8 100644 --- a/SudokuGrid.java +++ b/SudokuGrid.java @@ -35,15 +35,12 @@ public class SudokuGrid extends JFrame { // Bouton pour sauvegarder la grille JButton save = new JButton("Sauvegarder"); - save.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - if (GrilleValide()) { - saveFichier(); - } else { - JOptionPane.showMessageDialog(null, "La grille n'est pas valide.", "Erreur", JOptionPane.ERROR_MESSAGE); - } - } - }); + + SaveButton saver = new SaveButton(GRID_SIZE,grid); + + save.addActionListener(saver); + + // Bouton pour chargé la grille JButton load = new JButton("Charger"); @@ -68,23 +65,7 @@ public class SudokuGrid extends JFrame { } // sauvegarder la grille en entier dans un texte - private void saveFichier() { - try { - PrintWriter affichage = new PrintWriter(new FileWriter("GrilleNumero1.txt")); - for (int i = 0; i < GRID_SIZE; i++) { - for (int j = 0; j < GRID_SIZE; j++) { - String value = grid[i][j].getText().isEmpty() ? "0" : grid[i][j].getText(); - affichage.print(value); - } - affichage.println(); - } - affichage.close(); - JOptionPane.showMessageDialog(null, "Grille sauvegardé avec succès.", "Succes", JOptionPane.INFORMATION_MESSAGE); - } catch (IOException e) { - JOptionPane.showMessageDialog(null, "Erreur lors de la sauvegarde de la grille.", "Erreur", JOptionPane.ERROR_MESSAGE); - e.printStackTrace(); - } - } + // charger une grille existant private void chargerFichier() { diff --git a/TextFilter.java b/TextFilter.java index debb732..eb2aab9 100644 --- a/TextFilter.java +++ b/TextFilter.java @@ -14,9 +14,10 @@ public class TextFilter extends KeyAdapter { @Override public void keyTyped(KeyEvent e) { + char chaine = e.getKeyChar(); - int taille = Text.getText().length(); + int taille = this.Text.getText().length(); if ( ((chaine < '0') || (chaine > '9')) && (chaine != KeyEvent.VK_BACK_SPACE)) { e.consume(); // ignorer l'événement