SAE21_2023/MainCreation.java
2024-05-01 21:40:26 +02:00

99 lines
4.0 KiB
Java

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.io.File;
import java.io.PrintWriter;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileNameExtensionFilter;
public class MainCreation {
public static void main(String[] args) {
int [][] grille = new int [9][9];
//Création de la fenetre de selection + choix du dossier
JFrame selF = new JFrame("Choix de résolution du Sudoku");
selF.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
selF.setSize(400, 200);
selF.setLayout(new BorderLayout());
selF.setLocationRelativeTo(null);
JLabel sel = new JLabel("Quelle grilles souhaitez vous ?");
//Création des boutons
sel.setHorizontalAlignment(JLabel.CENTER);
JButton grilleVide = new JButton("Grille vide");
JButton grilleExiste = new JButton("Grille Existante");
JPanel boutonsSelect = new JPanel();
boutonsSelect.setLayout(new FlowLayout());
boutonsSelect.add(grilleVide);
boutonsSelect.add(grilleExiste);
selF.add(sel, BorderLayout.NORTH);
selF.add(boutonsSelect, BorderLayout.CENTER);
selF.setVisible(true);
//Action des bouton
grilleVide.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
selF.dispose();
Grilles.grilleVide(grille);
fenetreModification(grille);
}
});
grilleExiste.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
selF.dispose();
JFileChooser fichier = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter("File grille","gri");
fichier.setFileFilter(filter);
File workingDirectory = new File(System.getProperty("user.dir"));
fichier.setCurrentDirectory(workingDirectory);
JPanel panneau = new JPanel();
int valeur_de_retour = fichier.showOpenDialog(panneau);
if(valeur_de_retour == JFileChooser.APPROVE_OPTION) {
Lecteur.lecture(fichier.getSelectedFile().getName(), grille);
fenetreModification(grille);
}
}
});
}
private static void fenetreModification(int[][] grille) {
JFrame frame = new JFrame("Sudoku");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
SaisieGrille saisieGrille = new SaisieGrille(grille); // Utilisation de la classe SaisieGrille pour permettre la saisie des valeurs
JButton register = new JButton("Enregistrer");
register.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e){
JFileChooser fileChooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter("File grille","gri");
fileChooser.setFileFilter(filter);
File workingDirectory = new File(System.getProperty("user.dir"));
fileChooser.setCurrentDirectory(workingDirectory);
JPanel panneau = new JPanel();
int valeur_de_retour = fileChooser.showOpenDialog(panneau);
if(valeur_de_retour == JFileChooser.APPROVE_OPTION) {
Register.sauvegarde(fileChooser.getSelectedFile().getName(), grille);
}
}
});
frame.add(register, BorderLayout.SOUTH); // Ajouter le bouton "Enregistrer"
frame.add(saisieGrille, BorderLayout.CENTER); // Ajouter la grille à la fenêtre
frame.pack();
frame.setLocationRelativeTo(null); // Centrer la fenêtre sur l'écran
frame.setVisible(true);
System.out.println("La fenêtre de création a été affichée.");
}
}