2024-04-26 16:26:26 +02:00
|
|
|
import javax.swing.*;
|
|
|
|
import java.awt.*;
|
|
|
|
import java.awt.event.*;
|
|
|
|
import java.io.*;
|
|
|
|
|
2024-05-04 16:04:24 +02:00
|
|
|
/**
|
|
|
|
* Menu pour le Programme 1 (Créateur de Sudoku).
|
|
|
|
*
|
|
|
|
* @author Julian GALLEGO
|
|
|
|
* @author Wilfried BRIGITTE
|
|
|
|
*/
|
2024-04-26 16:26:26 +02:00
|
|
|
public class menuProgramme1 {
|
|
|
|
|
|
|
|
private static String cheminFichier = null;
|
|
|
|
|
2024-05-04 16:04:24 +02:00
|
|
|
/**
|
|
|
|
* Affiche le menu du Programme 1 qui permet créer et d'editer une grille .
|
|
|
|
*/
|
2024-04-26 16:26:26 +02:00
|
|
|
public static void menuProgramme1() {
|
2024-05-04 16:04:24 +02:00
|
|
|
|
|
|
|
// création de la fenêtre
|
2024-04-26 16:26:26 +02:00
|
|
|
JFrame fenetre = new JFrame();
|
|
|
|
fenetre.setSize(500, 200);
|
|
|
|
fenetre.setTitle("Sudoku Creator (By Wilfried BRIGITTE & Julian GALLEGO)");
|
|
|
|
fenetre.setResizable(false);
|
|
|
|
fenetre.setLocationRelativeTo(null);
|
|
|
|
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
|
|
|
GridLayout gestionnaire = new GridLayout(4,1);
|
|
|
|
fenetre.setLayout(gestionnaire);
|
|
|
|
|
2024-05-04 16:04:24 +02:00
|
|
|
//composants graphique
|
2024-04-26 16:26:26 +02:00
|
|
|
JLabel titre = new JLabel("Sudoku Creator");
|
|
|
|
titre.setHorizontalAlignment(JLabel.CENTER);
|
|
|
|
titre.setFont(new Font("Arial", Font.PLAIN, 25));
|
|
|
|
fenetre.add(titre, BorderLayout.CENTER);
|
|
|
|
|
|
|
|
JPanel ligne3 = new JPanel();
|
|
|
|
JButton ouvrir = new JButton("Ouvrir");
|
|
|
|
JLabel nomFichier = new JLabel("Fichier ouvert : ");
|
|
|
|
ligne3.add(ouvrir);
|
|
|
|
ligne3.add(nomFichier);
|
|
|
|
fenetre.add(ligne3, BorderLayout.CENTER);
|
|
|
|
|
|
|
|
JPanel ligne4 = new JPanel();
|
|
|
|
JButton editerGrilleVierge = new JButton("Editer Grille Vierge");
|
|
|
|
JButton editerGrilleSelectionner = new JButton("Editer Grille Selectionner");
|
|
|
|
JButton quitter = new JButton("Quitter");
|
|
|
|
ligne4.add(editerGrilleVierge);
|
|
|
|
ligne4.add(editerGrilleSelectionner);
|
|
|
|
ligne4.add(quitter);
|
|
|
|
fenetre.add(ligne4, BorderLayout.CENTER);
|
|
|
|
|
|
|
|
JLabel InfoLogiciel = new JLabel(" Info : Tout est normal");
|
|
|
|
InfoLogiciel.setHorizontalAlignment(JLabel.LEFT);
|
|
|
|
InfoLogiciel.setFont(new Font("Arial", Font.PLAIN, 11));
|
|
|
|
fenetre.add(InfoLogiciel);
|
|
|
|
|
2024-05-04 16:04:24 +02:00
|
|
|
//affichage de la fenêtre
|
2024-04-26 16:26:26 +02:00
|
|
|
fenetre.setVisible(true);
|
|
|
|
|
2024-05-04 16:04:24 +02:00
|
|
|
//Evenements
|
2024-04-26 16:26:26 +02:00
|
|
|
ouvrir.addActionListener(new ActionListener() {
|
2024-05-04 16:04:24 +02:00
|
|
|
/**
|
|
|
|
* Ouvre un sélecteur de fichiers pour choisir un fichier de grille à charger.
|
|
|
|
*
|
|
|
|
* @param e L'événement d'action.
|
|
|
|
*/
|
2024-04-26 16:26:26 +02:00
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
|
try {
|
|
|
|
JFileChooser filechooser = new JFileChooser();
|
|
|
|
filechooser.setCurrentDirectory(new File("./grille"));
|
|
|
|
int result = filechooser.showOpenDialog(null);
|
|
|
|
if (result == JFileChooser.APPROVE_OPTION) {
|
|
|
|
File selectedFile = filechooser.getSelectedFile();
|
|
|
|
nomFichier.setText("Fichier ouvert : " + selectedFile.getName());
|
|
|
|
cheminFichier = selectedFile.getAbsolutePath();
|
|
|
|
InfoLogiciel.setText(" Info : Tout est normal");
|
|
|
|
InfoLogiciel.setForeground(Color.BLACK);
|
|
|
|
}
|
|
|
|
} catch (Exception ex) {
|
|
|
|
System.err.println("Erreur selection du fichier");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
editerGrilleVierge.addActionListener(new ActionListener(){
|
2024-05-04 16:04:24 +02:00
|
|
|
/**
|
|
|
|
* Crée une grille vide et l'affiche pour l'édition.
|
|
|
|
*
|
|
|
|
* @param e4 L'événement d'action.
|
|
|
|
*/
|
2024-04-26 16:26:26 +02:00
|
|
|
public void actionPerformed(ActionEvent e4){
|
|
|
|
int[][] grille_vide = null;
|
|
|
|
grille_vide = new int[9][9];
|
|
|
|
|
|
|
|
for (int i = 0; i < 9; i++) {
|
|
|
|
for (int j = 0; j < 9 ; j++ ) {
|
|
|
|
grille_vide[i][j] = 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fenetre.dispose();
|
2024-05-04 16:04:24 +02:00
|
|
|
Grille.AfficherGrille(grille_vide, true, false, 0);
|
2024-04-26 16:26:26 +02:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
editerGrilleSelectionner.addActionListener(new ActionListener(){
|
2024-05-04 16:04:24 +02:00
|
|
|
/**
|
|
|
|
* Charge une grille à partir du fichier sélectionné et l'affiche pour l'édition.
|
|
|
|
*
|
|
|
|
* @param e4 L'événement d'action.
|
|
|
|
*/
|
2024-04-26 16:26:26 +02:00
|
|
|
public void actionPerformed(ActionEvent e4){
|
|
|
|
if (cheminFichier == null){
|
|
|
|
InfoLogiciel.setText(" Info : Erreur : Veuillez selectionner un fichier .gri");
|
|
|
|
InfoLogiciel.setForeground(Color.RED);
|
|
|
|
}else{
|
|
|
|
fenetre.dispose();
|
2024-05-04 16:04:24 +02:00
|
|
|
Grille.AfficherGrille(Grille.ChargerGrille(cheminFichier), true, false, 0);
|
2024-04-26 16:26:26 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
quitter.addActionListener(new ActionListener() {
|
2024-05-04 16:04:24 +02:00
|
|
|
/**
|
|
|
|
* Ferme l'application.
|
|
|
|
*
|
|
|
|
* @param e3 L'événement d'action.
|
|
|
|
*/
|
2024-04-26 16:26:26 +02:00
|
|
|
public void actionPerformed(ActionEvent e3) {
|
|
|
|
System.exit(0);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|