séparation des fichiers

This commit is contained in:
2024-04-29 15:08:14 +02:00
parent 8db83dcc2d
commit c8c8c3bc15
4 changed files with 72 additions and 28 deletions

View File

@@ -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 ###

59
SaveButton.java Normal file
View File

@@ -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();
}
}
}

View File

@@ -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() {

View File

@@ -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