(Java) grand nombre de champs de texte

azerty363 Messages postés 7 Date d'inscription   Statut Membre -  
sandul Messages postés 4013 Statut Membre -
Bonjour,

Y aurait-il un moyen astucieux de remplacer le code suivant ?

private void SudokuTextSet(int i, String string) {
if(i==0){jTextField1.setText(string);};
if(i==1){jTextField2.setText(string);};
if(i==2){jTextField3.setText(string);};
if(i==3){jTextField4.setText(string);};
if(i==4){jTextField5.setText(string);};
[...]
if(i==76){jTextField77.setText(string);};
if(i==77){jTextField78.setText(string);};
if(i==78){jTextField79.setText(string);};
if(i==79){jTextField80.setText(string);};
if(i==80){jTextField81.setText(string);};
}

Veuillez me proposer une manière élégante d'exploiter un grand nombre de champs de texte.

Merci

17 réponses

  1. sandul Messages postés 4013 Statut Membre 723
     
    Salut,

    J'ai essayé de regarder ton code, mais bon, il n'est pas complet (post no. 9 tronqué) d'une part, d'autre part il est loooong ... :)

    Voici comment je commencerais le truc. NB: la JFrame est bel et bien créée et maintenue dans un plug-in de visualisation graphique d'Eclipse, sauf le tableau de SudokuTF qui nous intéresse; à la différence de NetBeans qui met partout des warnings pour ne pas modifier le code généré automatiquement par ses soins (sous peine de le voir disparaître à la prochaine génération), WindowBuilder n'aurait le moindre problème pour avaler ceci et le laisser en état lors de la regénération même si on avait l'appel à createCells() dans le constructeur de la classe.
    package sudoku;
    
    import java.awt.BorderLayout;
    import java.awt.FlowLayout;
    import java.awt.GridLayout;
    import java.awt.event.KeyAdapter;
    import java.awt.event.KeyEvent;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    
    public class Azerty363Sample extends JFrame {
    	private static final long serialVersionUID = 1L;
    
    	private JPanel centerPane;
    	private final int DIMENSION = 9;
    	private final int NO_OF_CELLS = DIMENSION * DIMENSION;
    	private SudokuTF[] cells;
    
    	/**
    	 * Ceci est une classe qui pourrait s'avérer utile dans ton contexte; elle retient, par exemple, sa position dans la
    	 * grille (ligne et colonne); regarde plus bas comment ces valeurs peuvent être exploitées dans le listener.
    	 * D'autres attributs utiles peuvent être rajoutés à cette inner class.
    	 */
    	private class SudokuTF extends JTextField {
    		private static final long serialVersionUID = 1L;
    		private int row, col;
    
    		public SudokuTF(int row, int col) {
    			this.row = row;
    			this.col = col;
    		}
    
    		private int getCol() {
    			return col;
    		}
    
    		private int getRow() {
    			return row;
    		}
    	}
    
    	public static void main(String args[]) {
    		try {
    			Azerty363Sample frame = new Azerty363Sample();
    			frame.createCells();
    
    			frame.setVisible(true);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    
    	public Azerty363Sample() {
    		super();
    		setBounds(100, 100, 375, 375);
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
    		final JPanel panel = new JPanel();
    		final FlowLayout flowLayout = new FlowLayout();
    		flowLayout.setAlignment(FlowLayout.RIGHT);
    		panel.setLayout(flowLayout);
    		getContentPane().add(panel, BorderLayout.SOUTH);
    
    		final JButton helpButton = new JButton();
    		helpButton.setText("Help");
    		panel.add(helpButton);
    
    		getContentPane().add(getCenterPane(), BorderLayout.CENTER);
    		//
    	}
    
    	protected JPanel getCenterPane() {
    		if (centerPane == null) {
    			centerPane = new JPanel();
    			final GridLayout gridLayout = new GridLayout(DIMENSION, DIMENSION);
    			gridLayout.setHgap(2);
    			centerPane.setLayout(gridLayout);
    		}
    		return centerPane;
    	}
    
    	// create Cells <== écrite en dehors de la génération graphique WindowBuilder
    	private void createCells() {
    		cells = new SudokuTF[NO_OF_CELLS];
    		for (int i = 0; i < NO_OF_CELLS; i++) {
    			cells[i] = new SudokuTF(i / DIMENSION, i % DIMENSION);
    			// Ici tu vas mettre tout le code nécessaire pour bien gérer la cellule qui vient d'être créée:
    			// Positionnement du texte (center), un seul caractère autorisé (chiffre de 0 à 9), éventuellement le font...
    			// Egalement un listener pour chaque cell, car probablement tu voudras modifier l'affichage
    			// dès qu'une mauvaise valeur est rentrée (genre changer la couleur et la dessiner en rouge)
    
    			// Exemple de listener:
    			cells[i].addKeyListener(new KeyAdapter() {
    				@Override
    				public void keyReleased(KeyEvent e) {
    					SudokuTF cell = (SudokuTF) e.getSource();
    					System.out.println("nouvelle valeur à la position [" + cell.getRow() + ":" + cell.getCol() + "] ==> "
    							+ cell.getText());
    				}
    			});
    			getCenterPane().add(cells[i]);
    		}
    	}
    }
    
    
    1
  2. sandul Messages postés 4013 Statut Membre 723
     
    Hello again,

    Voici le même code, modifié un peu pour te montrer
    - comment appeler la méthode de vérification
    - comment centrer et contrôler l'input d'une cellule (max 1 chiffre autorisé)
    package sudoku;
    
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.FlowLayout;
    import java.awt.GridLayout;
    import java.awt.event.KeyAdapter;
    import java.awt.event.KeyEvent;
    import java.text.ParseException;
    import java.util.Random;
    
    import javax.swing.JButton;
    import javax.swing.JFormattedTextField;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    import javax.swing.text.MaskFormatter;
    
    public class Azerty363Sample extends JFrame {
    	private static final long serialVersionUID = 1L;
    
    	private JPanel centerPane;
    	private final int DIMENSION = 9;
    	private final int NO_OF_CELLS = DIMENSION * DIMENSION;
    	private SudokuTF[] cells;
    
    	// Disons que la valeur rentrée n'est pas correcte ==> changer le background de la cellule
    	// Pour cette démo, on va le faire aléatoirement une fois sur 2; rand va nous générer
    	// des valeurs aléatoires
    	Random rand = new Random(65626329562l);
    
    	/**
    	 * Ceci est une classe qui pourrait s'avérer utile dans ton contexte; elle retient, par exemple, sa position dans la
    	 * grille (ligne et colonne); regarde plus bas comment ces valeurs peuvent être exploitées dans le listener. D'autres
    	 * attributs utiles peuvent être rajoutées à cette classe.
    	 */
    	private class SudokuTF extends JFormattedTextField {
    		private static final long serialVersionUID = 1L;
    		private int row, col;
    
    		public SudokuTF(int row, int col, MaskFormatter format) {
    			super(format);
    			this.row = row;
    			this.col = col;
    		}
    
    		private int getCol() {
    			return col;
    		}
    
    		private int getRow() {
    			return row;
    		}
    	}
    
    	public static void main(String args[]) {
    		try {
    			Azerty363Sample frame = new Azerty363Sample();
    			frame.createCells();
    
    			frame.setVisible(true);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    
    	public Azerty363Sample() {
    		super();
    		setBounds(100, 100, 375, 375);
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
    		final JPanel panel = new JPanel();
    		final FlowLayout flowLayout = new FlowLayout();
    		flowLayout.setAlignment(FlowLayout.RIGHT);
    		panel.setLayout(flowLayout);
    		getContentPane().add(panel, BorderLayout.SOUTH);
    
    		final JButton helpButton = new JButton();
    		helpButton.setText("Help");
    		panel.add(helpButton);
    
    		getContentPane().add(getCenterPane(), BorderLayout.CENTER);
    		//
    	}
    
    	protected JPanel getCenterPane() {
    		if (centerPane == null) {
    			centerPane = new JPanel();
    			final GridLayout gridLayout = new GridLayout(DIMENSION, DIMENSION);
    			gridLayout.setHgap(2);
    			centerPane.setLayout(gridLayout);
    		}
    		return centerPane;
    	}
    
    	// create Cells <== écrite en dehors de la génération graphique WindowBuilder
    	private void createCells() {
    		cells = new SudokuTF[NO_OF_CELLS];
    
    		// max un seul caractère autorisé (chiffre)
    		MaskFormatter formatter = null;
    		try {
    			formatter = new MaskFormatter("#");
    		} catch (ParseException e1) {
    			e1.printStackTrace();
    		}
    
    		for (int i = 0; i < NO_OF_CELLS; i++) {
    			cells[i] = new SudokuTF(i / DIMENSION, i % DIMENSION, formatter);
    
    			// Ici tu vas mettre tout le code nécessaire pour bien gérer la cellule qui vient d'être créée:
    			// Positionnement du texte (center), un seul caractère autorisé (chiffre de 0 à 9), éventuellement le font...
    			// Egalement un listener pour chaque cell, car probablement tu voudras modifier l'affichage
    			// dès qu'une mauvaise valeur est rentrée (genre changer la couleur et la dessiner en rouge)
    
    			cells[i].setHorizontalAlignment(JTextField.CENTER);
    			
    			// Exemple de listener:
    			cells[i].addKeyListener(new KeyAdapter() {
    				@Override
    				public void keyReleased(KeyEvent e) {
    					SudokuTF cell = (SudokuTF) e.getSource();
    
    					System.out.println("nouvelle valeur à la position [" + cell.getRow() + ":" + cell.getCol() + "] ==> "
    							+ cell.getText());
    
    					// on va vérifier ce que not' utilisateur a rentré
    					checkEnteredValue(cell);
    				}
    			});
    			getCenterPane().add(cells[i]);
    		}
    	}
    
    	// méthode qui vérifie si la valeur entrée est correcte
    	protected void checkEnteredValue(SudokuTF currentCell) {
    		if (rand.nextBoolean()) {
    			currentCell.setBackground(Color.RED);
    		} else {
    			currentCell.setBackground(Color.WHITE);
    		}
    	}
    }
    


    Voilou, amuse-toi bien,
    ++
    1
  3. artragis Messages postés 510 Statut Membre 146
     
    je ne suis pas sûr de moi, je débute en Java, cependant un algoritme qui pourait t'aider
    cependant j'ai besoin de savoir, ton but est-il comme je l'ai compris de rentré un texte dans le text field ainsi sélectionné?
    explique toi plus... parce uqe ton morceau de code... on peut comme ça le réduire grace à un truc genre jtextfield[i].setText... mais si je connais pas ton but personne ne poura te dire quoi
    0
  4. azerty363 Messages postés 7 Date d'inscription   Statut Membre
     
    Tu as tout compris

    Je programme un solveur de Sudoku.

    J'ai ma jolie interface graphique avec 81 cases, 1 beau bouton qui résout tout, 1 menu qui efface tout, qui sauvegarde, qui ouvre et qui ferme tout. Interface réalisé avec NetBeans avec une interface swing machin.

    J'ai besoin d'accèder à mes cases de manière éfficace.

    un truc genre jtextfield[i].setText, j'y avais pensé mais j'étais pas sûre
    je sais pas tout ce qui faut modifier dans l'histoire
    et j'ai pas envie de remettre toutes les cases dans l'ordre
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. artragis Messages postés 510 Statut Membre 146
     
    normellement le propre d'un champ texte c'est que tu peux écrire ce que tu veux dedans dès que tu as la main.
    donc je vois pas pourquoi tu veux des If et des machins...
    ce que je voulais surtout savoir c'est à quoi correspond le fameux "i"
    0
  7. sandul Messages postés 4013 Statut Membre 723
     
    Salut,

    Si tu veux utiliser un tableau de JTextField, c'est tout à fait possible (et recommandable dans ton cas); mais il ne faut plus compter sur l'interface graphique que NetBeans te propose pour construire ta fenêtre (il ne saura pas gérer ton tableau de textfield) ==> du coup, tu peux utiliser netbeans pour le reste si tu veux, mais tu construis dans une boucle le tableau de textfield en plaçant correctement chaque textfield et en ajoutant un listener dessus...). Au code généré par NetBeans tu ajoutes à la fin l'initialisation de ton tableau de textfield. Pas si compliqué que cela.

    ++
    0
  8. artragis Messages postés 510 Statut Membre 146
     
    pour la boucle je m'en doutais lol
    par contre j'ai ne question (je n'en reste pas moins un débutant).
    J'utilise Eclipse pour programmer, et j'entends souvent parler d'interface genre NetBeans, qu'est-ce que c'est comment l'utiliser comment l'obtenir?
    ha et aussi, peux-tu développer la mystérieuse ". Au code généré par NetBeans tu ajoutes à la fin l'initialisation de ton tableau de textfield" mreci (je suis débutant je le rappelle j'ai franchement envie d'apprendre alros svp)
    0
  9. sandul Messages postés 4013 Statut Membre 723
     
    J'utilise Eclipse pour programmer, et j'entends souvent parler d'interface genre NetBeans, qu'est-ce que c'est comment l'utiliser comment l'obtenir? <== il y a un plug-in pour Eclipse (VE, Visual Editor) qui te permet de faire du développement graphique. Je l'ai utilisé longtemps (jusqu'à la version 3.3 d'Eclipse pour laquelle il n'était pas compatible, mais regarde sur eclipse.org quelle est la situation présente). Je l'ai remplacé entre temps par WindowsBuilder de chez Instantiations qui est vraiment excellent (mais payant).

    NetBeans (gratuit) offre ce que VE offre/offrait aussi, mais c'est un autre IDE (de chez Sun). Je ne sais pas s'il y a un plug-in Eclipse à la sauce NetBeans (à part celui appelé Matisse et intégré dans MyEclipse)...

    En ce qui concerne la génération en boucle du tableau, ce n'est pas compliqué, tu feras qqch comme

    private void createTFields() {
    tFields = new JTextField[TF_LENGTH]; // tu déclares l'array tFields dans ta classe comme private et TF_LENGTH est une constante
    for (int i=0; i<TF_LENGTH; i++) {
    tField[i] = new JTextField();
    // ici tu positionnes le textfield dans le gridbaglayout ou le gridlayout de ta fenêtre et tu rajoutes un listener
    }

    Sorry si l'exemple est pauvre, mais je dois quitter à présent, si tu ne t'en sors pas, je vais essayer de poster demain un code plus complet.

    ++
    0
  10. artragis Messages postés 510 Statut Membre 146
     
    merci pour le Net beans
    je verrais ça sur eclipse.org
    pour la boucle, je savais que c'était comme ça (et ton exemple est très parlant lol) c'était "l'initialisation" qui me gênait... mais apparament je me suis posé des questions dans le vide puisque tout compte fait ce terme ne disait rien de plus que ce que je pensais lol. pour reprendre ton exemple
    TF_LENGTH=81 ici et on part pas de 0 mais de 1 pour que ça soit plus lisible et plus compréhensible lol m^mee pour les débutant.
    0
  11. azerty363 Messages postés 7 Date d'inscription   Statut Membre
     
    Cher Artagis,
    NetBeans est l'équvalent de Eclipse proposé sur le site de Sun (donc ça doit être mieux^^)
    C'est un logiciel qui permet de coder en Java, C, C++... dans une jolie interface avec des boutons pour simplfier la programmation. En gros, c'est Eclipse avec les mêmes boutons à un endroit différent. Du moins, je crois. J'avais installé Eclipse, il y a longtemps.

    Pour vous expliquer ce fameux i, voici des extraits de code.

    Extrait du code de résolution :
    // Exploitation des contraintes sur une valeur.
    for(int j=0;j<9;j++){

    int a = 0;
    int b = 0;
    int c = 0;

    // On compte les contraintes :
    // a dans la ligne,
    // b dans la colonne,
    // c dans le carré.
    for(int k=0;k<9;k++){
    a = a + maxofconstrained[i][9*j+k];
    b = b + maxofconstrained[i][j+9*k];
    c = c + maxofconstrained[i][ (j-j%3)*9 +(j%3)*3 + (k-k%3)*3 + k%3 ];
    }

    // On modifie une ligne.
    if(a==8){
    for(int k=0;k<9;k++){
    if(maxofconstrained[i][9*j+k]==0){
    SudokuTextSet(9*j+k,IntToString(i));
    }
    }
    }

    // On modifie une colonne.
    if(b==8){
    for(int k=0;k<9;k++){
    if(maxofconstrained[i][j+9*k]==0){
    SudokuTextSet(j+9*k,IntToString(i));
    }
    }
    }

    // On modifie un carré.
    if(c==8){
    for(int k=0;k<9;k++){
    if(maxofconstrained[i][(j-j%3)*9 +(j%3)*3 + (k-k%3)*3 + k%3]==0){
    SudokuTextSet((j-j%3)*9 +(j%3)*3 + (k-k%3)*3 + k%3,IntToString(i));
    }
    }
    }

    }

    Extrait du code d'ouverture :
    public void OpenSudoku() throws FileNotFoundException, IOException {

    System.out.println("----");

    String nomRepertoire = "G:\\";
    String nomFichier = "Sudoku.txt";

    File fichier = new File(nomRepertoire, nomFichier);
    FileReader in = new FileReader(fichier);

    char[] data = new char[(int)fichier.length()];
    in.read(data);
    in.close();

    String a;
    for(int i=0;i<81;i++){
    a = data[i]+"";
    if(a.equalsIgnoreCase("0")){
    SudokuTextSet(i,"");
    }
    else{
    SudokuTextSet(i,data[i]+"");
    }
    }

    System.out.println("Sudoku Opened");
    System.out.println("----");

    }

    peux-tu développer la mystérieuse ". Au code généré par NetBeans tu ajoutes à la fin l'initialisation de ton tableau de textfield"
    0
  12. azerty363 Messages postés 7 Date d'inscription   Statut Membre
     
    Pour ceux qui veulent voir le projet global pour mieux me répondre, copier-coller le long texte suivant.

    /*
    * SudokuView.java
    */

    package sudoku;

    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import org.jdesktop.application.Action;
    import org.jdesktop.application.ResourceMap;
    import org.jdesktop.application.SingleFrameApplication;
    import org.jdesktop.application.FrameView;
    import org.jdesktop.application.TaskMonitor;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileWriter;
    import javax.swing.Timer;
    import javax.swing.Icon;
    import javax.swing.JDialog;
    import javax.swing.JFrame;

    /**
    * The application's main frame.
    */
    public class SudokuView extends FrameView {

    String SudokuText[] = new String[81];
    int SudokuInt[] = new int[81];

    public SudokuView(SingleFrameApplication app) {
    super(app);

    initComponents();

    // status bar initialization - message timeout, idle icon and busy animation, etc
    ResourceMap resourceMap = getResourceMap();
    int messageTimeout = resourceMap.getInteger("StatusBar.messageTimeout");
    messageTimer = new Timer(messageTimeout, new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    statusMessageLabel.setText("");
    }
    });
    messageTimer.setRepeats(false);
    int busyAnimationRate = resourceMap.getInteger("StatusBar.busyAnimationRate");
    for (int i = 0; i < busyIcons.length; i++) {
    busyIcons[i] = resourceMap.getIcon("StatusBar.busyIcons[" + i + "]");
    }
    busyIconTimer = new Timer(busyAnimationRate, new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    busyIconIndex = (busyIconIndex + 1) % busyIcons.length;
    statusAnimationLabel.setIcon(busyIcons[busyIconIndex]);
    }
    });
    idleIcon = resourceMap.getIcon("StatusBar.idleIcon");
    statusAnimationLabel.setIcon(idleIcon);
    progressBar.setVisible(false);

    // connecting action tasks to status bar via TaskMonitor
    TaskMonitor taskMonitor = new TaskMonitor(getApplication().getContext());
    taskMonitor.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
    public void propertyChange(java.beans.PropertyChangeEvent evt) {
    String propertyName = evt.getPropertyName();
    if ("started".equals(propertyName)) {
    if (!busyIconTimer.isRunning()) {
    statusAnimationLabel.setIcon(busyIcons[0]);
    busyIconIndex = 0;
    busyIconTimer.start();
    }
    progressBar.setVisible(true);
    progressBar.setIndeterminate(true);
    } else if ("done".equals(propertyName)) {
    busyIconTimer.stop();
    statusAnimationLabel.setIcon(idleIcon);
    progressBar.setVisible(false);
    progressBar.setValue(0);
    } else if ("message".equals(propertyName)) {
    String text = (String)(evt.getNewValue());
    statusMessageLabel.setText((text == null) ? "" : text);
    messageTimer.restart();
    } else if ("progress".equals(propertyName)) {
    int value = (Integer)(evt.getNewValue());
    progressBar.setVisible(true);
    progressBar.setIndeterminate(false);
    progressBar.setValue(value);
    }
    }
    });
    }

    @Action
    public void showAboutBox() {
    if (aboutBox == null) {
    JFrame mainFrame = SudokuApp.getApplication().getMainFrame();
    aboutBox = new SudokuAboutBox(mainFrame);
    aboutBox.setLocationRelativeTo(mainFrame);
    }
    SudokuApp.getApplication().show(aboutBox);
    }

    /**
    * Détecte une erreur de remplissage de la grille par l'utilisateur.
    * Retourne l'entier 0 s'il n'y a pas d'erreur.
    * Retourne 100 + le numéro de case où se situe l'erreur.
    *
    * @param SudokuText
    * @return integer a = 100 + integer i where a problem of character is found or 0 if not
    */
    private int CheckSudoku1(String[] SudokuText) {

    int a=0;

    // On vérifie que les cases sont vides ou avec un chiffre entre 1 et 9.
    for(int i=0;i<81;i++){
    if( SudokuText[i].equalsIgnoreCase("1") ||
    SudokuText[i].equalsIgnoreCase("2") ||
    SudokuText[i].equalsIgnoreCase("3") ||
    SudokuText[i].equalsIgnoreCase("4") ||
    SudokuText[i].equalsIgnoreCase("5") ||
    SudokuText[i].equalsIgnoreCase("6") ||
    SudokuText[i].equalsIgnoreCase("7") ||
    SudokuText[i].equalsIgnoreCase("8") ||
    SudokuText[i].equalsIgnoreCase("9") ||
    SudokuText[i].equalsIgnoreCase("") ){}
    else{return(100+i);}
    }

    return(a);

    }

    /**
    * Détecte un non respect des régles du Sudoku.
    * Retourne l'entier 0 s'il n'y a pas d'erreur.
    * Retourne 200 + le numéro de case où se situe l'erreur.
    *
    * @param SudokuText
    * @return integer a = 200 + integer i where a problem of no-respect of Sudoku'laws is found or 0 if not
    */
    private int CheckSudoku2(int[] SudokuInt) {

    /* Tri postal pour verifier le respect des trois lois du sudoku.
    * SudokuVerif[ligne,colonne,carré][n°][valeur] = nb d'apparition de
    * la valeur dans la n° ligne,colonne,carré.
    */

    int a=0;
    int SudokuVerif[][][] = new int[3][9][10];

    // Initialise SudokuVerif.
    for(int i=0;i<3;i++){
    for(int j=0;j<9;j++){
    for(int k=0;k<10;k++){
    SudokuVerif[i][j][k]=0;
    }
    }
    }

    // Remplis SudokuVerif en fonction de SudokuInt.
    for(int i=0;i<81;i++){
    SudokuVerif[0][(i-i%9)/9][SudokuInt[i]]++;
    SudokuVerif[1][i%9][SudokuInt[i]]++;
    SudokuVerif[2][ ((i-i%9)/9-((i-i%9)/9)%3) + ((i%9)-(i%9)%3)/3 ][SudokuInt[i]]++;
    }

    // Traite les données de SudokuVerif.
    for(int i=0;i<3;i++){
    for(int j=0;j<9;j++){
    for(int k=1;k<10;k++){
    if(SudokuVerif[i][j][k]<2){}
    else{return(200 + 10*(i+1) + (j+1));}
    }
    }
    }

    return(a);

    }

    /**
    * Recherche les contraintes directement appliquées par les trois lois du
    * Sudoku dans la case n.
    *
    * @param SudokuInt
    * @param n
    * @return int[] constrained : for each value, return 1 if there are any
    * constrained, return 0 if not.
    */
    private int[] ConstrainedFinder(int[] SudokuInt,int n) {

    // Definir variable
    int constrained[] = new int[10];
    int i=(n-n%9)/9;
    int j=n%9;
    int k=((n-n%9)/9-((n-n%9)/9)%3) + ((n%9)-(n%9)%3)/3;

    // Initialiser
    for(int l=0;l<10;l++){
    constrained[l]=0;
    }

    // Vérifier
    for(int l=0;l<9;l++){
    // dans la ligne
    constrained[SudokuInt[9*i+l]]=1;
    // dans la colonne
    constrained[SudokuInt[9*l+j]]=1;
    // dans le carré
    constrained[SudokuInt[(k-k%3)*9 + (k%3)*3 + (l-l%3)*3 + l%3 ]]=1;
    }

    return(constrained);

    }

    /**
    * Transorme la grille Sudoku sous forme d'une liste de chaînes de
    * caractères en une liste d'entiers.
    *
    * @param SudokuText
    * @return int[] SudokuInt
    */
    private int[] ConvertSudokuStringToInt(String[] SudokuText) {
    int SudokuIntL[] = new int[81];
    for(int i=0;i<81;i++){SudokuIntL[i]=StringToInt(SudokuText[i]);}
    return(SudokuIntL);
    }

    /**
    * Transforme un entier en chaîne de caractères.
    *
    * @param i
    * @return String of the integer i
    */
    private String IntToString(int i) {

    return(i+"");

    // if(i==1){return("1");}
    // if(i==2){return("2");}
    // if(i==3){return("3");}
    // if(i==4){return("4");}
    // if(i==5){return("5");}
    // if(i==6){return("6");}
    // if(i==7){return("7");}
    // if(i==8){return("8");}
    // if(i==9){return("9");}
    // return("");

    }

    /**
    * Transforme une chaîne de caractères en entier.
    *
    * @param string
    * @return integer of the String string
    */
    private int StringToInt(String string) {

    if(string.equalsIgnoreCase("")){
    return(0);
    }
    else{
    return(Integer.parseInt(string));
    }

    // return(Integer.parseInt(string));
    // if(string.equalsIgnoreCase("1")){return(1);}
    // if(string.equalsIgnoreCase("2")){return(2);}
    // if(string.equalsIgnoreCase("3")){return(3);}
    // if(string.equalsIgnoreCase("4")){return(4);}
    // if(string.equalsIgnoreCase("5")){return(5);}
    // if(string.equalsIgnoreCase("6")){return(6);}
    // if(string.equalsIgnoreCase("7")){return(7);}
    // if(string.equalsIgnoreCase("8")){return(8);}
    // if(string.equalsIgnoreCase("9")){return(9);}
    // return(0);

    }

    @SuppressWarnings("empty-statement")
    private void SudokuTextSet(int i, String string) {
    if(i==0){jTextField1.setText(string);};
    if(i==1){jTextField2.setText(string);};
    if(i==2){jTextField3.setText(string);};
    if(i==3){jTextField4.setText(string);};
    if(i==4){jTextField5.setText(string);};
    if(i==5){jTextField6.setText(string);};
    if(i==6){jTextField7.setText(string);};
    if(i==7){jTextField8.setText(string);};
    if(i==8){jTextField9.setText(string);};
    if(i==9){jTextField10.setText(string);};
    if(i==10){jTextField11.setText(string);};
    if(i==11){jTextField12.setText(string);};
    if(i==12){jTextField13.setText(string);};
    if(i==13){jTextField14.setText(string);};
    if(i==14){jTextField15.setText(string);};
    if(i==15){jTextField16.setText(string);};
    if(i==16){jTextField17.setText(string);};
    if(i==17){jTextField18.setText(string);};
    if(i==18){jTextField19.setText(string);};
    if(i==19){jTextField20.setText(string);};
    if(i==20){jTextField21.setText(string);};
    if(i==21){jTextField22.setText(string);};
    if(i==22){jTextField23.setText(string);};
    if(i==23){jTextField24.setText(string);};
    if(i==24){jTextField25.setText(string);};
    if(i==25){jTextField26.setText(string);};
    if(i==26){jTextField27.setText(string);};
    if(i==27){jTextField28.setText(string);};
    if(i==28){jTextField29.setText(string);};
    if(i==29){jTextField30.setText(string);};
    if(i==30){jTextField31.setText(string);};
    if(i==31){jTextField32.setText(string);};
    if(i==32){jTextField33.setText(string);};
    if(i==33){jTextField34.setText(string);};
    if(i==34){jTextField35.setText(string);};
    if(i==35){jTextField36.setText(string);};
    if(i==36){jTextField37.setText(string);};
    if(i==37){jTextField38.setText(string);};
    if(i==38){jTextField39.setText(string);};
    if(i==39){jTextField40.setText(string);};
    if(i==40){jTextField41.setText(string);};
    if(i==41){jTextField42.setText(string);};
    if(i==42){jTextField43.setText(string);};
    if(i==43){jTextField44.setText(string);};
    if(i==44){jTextField45.setText(string);};
    if(i==45){jTextField46.setText(string);};
    if(i==46){jTextField47.setText(string);};
    if(i==47){jTextField48.setText(string);};
    if(i==48){jTextField49.setText(string);};
    if(i==49){jTextField50.setText(string);};
    if(i==50){jTextField51.setText(string);};
    if(i==51){jTextField52.setText(string);};
    if(i==52){jTextField53.setText(string);};
    if(i==53){jTextField54.setText(string);};
    if(i==54){jTextField55.setText(string);};
    if(i==55){jTextField56.setText(string);};
    if(i==56){jTextField57.setText(string);};
    if(i==57){jTextField58.setText(string);};
    if(i==58){jTextField59.setText(string);};
    if(i==59){jTextField60.setText(string);};
    if(i==60){jTextField61.setText(string);};
    if(i==61){jTextField62.setText(string);};
    if(i==62){jTextField63.setText(string);};
    if(i==63){jTextField64.setText(string);};
    if(i==64){jTextField65.setText(string);};
    if(i==65){jTextField66.setText(string);};
    if(i==66){jTextField67.setText(string);};
    if(i==67){jTextField68.setText(string);};
    if(i==68){jTextField69.setText(string);};
    if(i==69){jTextField70.setText(string);};
    if(i==70){jTextField71.setText(string);};
    if(i==71){jTextField72.setText(string);};
    if(i==72){jTextField73.setText(string);};
    if(i==73){jTextField74.setText(string);};
    if(i==74){jTextField75.setText(string);};
    if(i==75){jTextField76.setText(string);};
    if(i==76){jTextField77.setText(string);};
    if(i==77){jTextField78.setText(string);};
    if(i==78){jTextField79.setText(string);};
    if(i==79){jTextField80.setText(string);};
    if(i==80){jTextField81.setText(string);};
    }

    @SuppressWarnings("empty-statement")
    private String SudokuTextGet(int i) {
    String string = "";
    if(i==0){string = jTextField1.getText();};
    if(i==1){string = jTextField2.getText();};
    if(i==2){string = jTextField3.getText();};
    if(i==3){string = jTextField4.getText();};
    if(i==4){string = jTextField5.getText();};
    if(i==5){string = jTextField6.getText();};
    if(i==6){string = jTextField7.getText();};
    if(i==7){string = jTextField8.getText();};
    if(i==8){string = jTextField9.getText();};
    if(i==9){string = jTextField10.getText();};
    if(i==10){string = jTextField11.getText();};
    if(i==11){string = jTextField12.getText();};
    if(i==12){string = jTextField13.getText();};
    if(i==13){string = jTextField14.getText();};
    if(i==14){string = jTextField15.getText();};
    if(i==15){string = jTextField16.getText();};
    if(i==16){string = jTextField17.getText();};
    if(i==17){string = jTextField18.getText();};
    if(i==18){string = jTextField19.getText();};
    if(i==19){string = jTextField20.getText();};
    if(i==20){string = jTextField21.getText();};
    if(i==21){string = jTextField22.getText();};
    if(i==22){string = jTextField23.getText();};
    if(i==23){string = jTextField24.getText();};
    if(i==24){string = jTextField25.getText();};
    if(i==25){string = jTextField26.getText();};
    if(i==26){string = jTextField27.getText();};
    if(i==27){string = jTextField28.getText();};
    if(i==28){string = jTextField29.getText();};
    if(i==29){string = jTextField30.getText();};
    if(i==30){string = jTextField31.getText();};
    if(i==31){string = jTextField32.getText();};
    if(i==32){string = jTextField33.getText();};
    if(i==33){string = jTextField34.getText();};
    if(i==34){string = jTextField35.getText();};
    if(i==35){string = jTextField36.getText();};
    if(i==36){string = jTextField37.getText();};
    if(i==37){string = jTextField38.getText();};
    if(i==38){string = jTextField39.getText();};
    if(i==39){string = jTextField40.getText();};
    if(i==40){string = jTextField41.getText();};
    if(i==41){string = jTextField42.getText();};
    if(i==42){string = jTextField43.getText();};
    if(i==43){string = jTextField44.getText();};
    if(i==44){string = jTextField45.getText();};
    if(i==45){string = jTextField46.getText();};
    if(i==46){string = jTextField47.getText();};
    if(i==47){string = jTextField48.getText();};
    if(i==48){string = jTextField49.getText();};
    if(i==49){string = jTextField50.getText();};
    if(i==50){string = jTextField51.getText();};
    if(i==51){string = jTextField52.getText();};
    if(i==52){string = jTextField53.getText();};
    if(i==53){string = jTextField54.getText();};
    if(i==54){string = jTextField55.getText();};
    if(i==55){string = jTextField56.getText();};
    if(i==56){string = jTextField57.getText();};
    if(i==57){string = jTextField58.getText();};
    if(i==58){string = jTextField59.getText();};
    if(i==59){string = jTextField60.getText();};
    if(i==60){string = jTextField61.getText();};
    if(i==61){string = jTextField62.getText();};
    if(i==62){string = jTextField63.getText();};
    if(i==63){string = jTextField64.getText();};
    if(i==64){string = jTextField65.getText();};
    if(i==65){string = jTextField66.getText();};
    if(i==66){string = jTextField67.getText();};
    if(i==67){string = jTextField68.getText();};
    if(i==68){string = jTextField69.getText();};
    if(i==69){string = jTextField70.getText();};
    if(i==70){string = jTextField71.getText();};
    if(i==71){string = jTextField72.getText();};
    if(i==72){string = jTextField73.getText();};
    if(i==73){string = jTextField74.getText();};
    if(i==74){string = jTextField75.getText();};
    if(i==75){string = jTextField76.getText();};
    if(i==76){string = jTextField77.getText();};
    if(i==77){string = jTextField78.getText();};
    if(i==78){string = jTextField79.getText();};
    if(i==79){string = jTextField80.getText();};
    if(i==80){string = jTextField81.getText();};
    return(string);
    }

    /** This method is called from within the constructor to
    * initialize the form.
    * WARNING: Do NOT modify this code. The content of this method is
    * always regenerated by the Form Editor.
    */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

    mainPanel = new javax.swing.JPanel();
    jTextField1 = new javax.swing.JTextField();
    jTextField2 = new javax.swing.JTextField();
    jTextField3 = new javax.swing.JTextField();
    jTextField4 = new javax.swing.JTextField();
    jTextField5 = new javax.swing.JTextField();
    jTextField6 = new javax.swing.JTextField();
    jTextField7 = new javax.swing.JTextField();
    jTextField8 = new javax.swing.JTextField();
    jTextField9 = new javax.swing.JTextField();
    jTextField10 = new javax.swing.JTextField();
    jTextField11 = new javax.swing.JTextField();
    jTextField12 = new javax.swing.JTextField();
    jTextField13 = new javax.swing.JTextField();
    jTextField14 = new javax.swing.JTextField();
    jTextField15 = new javax.swing.JTextField();
    jTextField16 = new javax.swing.JTextField();
    jTextField17 = new javax.swing.JTextField();
    jTextField18 = new javax.swing.JTextField();
    jTextField19 = new javax.swing.JTextField();
    jTextField20 = new javax.swing.JTextField();
    jTextField21 = new javax.swing.JTextField();
    jTextField22 = new javax.swing.JTextField();
    jTextField23 = new javax.swing.JTextField();
    jTextField24 = new javax.swing.JTextField();
    jTextField25 = new javax.swing.JTextField();
    jTextField26 = new javax.swing.JTextField();
    jTextField27 = new javax.swing.JTextField();
    jTextField28 = new javax.swing.JTextField();
    jTextField29 = new javax.swing.JTextField();
    jTextField30 = new javax.swing.JTextField();
    jTextField31 = new javax.swing.JTextField();
    jTextField32 = new javax.swing.JTextField();
    jTextField33 = new javax.swing.JTextField();
    jTextField34 = new javax.swing.JTextField();
    jTextField35 = new javax.swing.JTextField();
    jTextField36 = new javax.swing.JTextField();
    jTextField37 = new javax.swing.JTextField();
    jTextField38 = new javax.swing.JTextField();
    jTextField39 = new javax.swing.JTextField();
    jTextField40 = new javax.swing.JTextField();
    jTextField41 = new javax.swing.JTextField();
    jTextField42 = new javax.swing.JTextField();
    jTextField43 = new javax.swing.JTextField();
    jTextField44 = new javax.swing.JTextField();
    jTextField45 = new javax.swing.JTextField();
    jTextField46 = new javax.swing.JTextField();
    jTextField47 = new javax.swing.JTextField();
    jTextField48 = new javax.swing.JTextField();
    jTextField49 = new javax.swing.JTextField();
    jTextField50 = new javax.swing.JTextField();
    jTextField51 = new javax.swing.JTextField();
    jTextField52 = new javax.swing.JTextField();
    jTextField53 = new javax.swing.JTextField();
    jTextField54 = new javax.swing.JTextField();
    jTextField55 = new javax.swing.JTextField();
    jTextField56 = new javax.swing.JTextField();
    jTextField57 = new javax.swing.JTextField();
    jTextField58 = new javax.swing.JTextField();
    jTextField59 = new javax.swing.JTextField();
    jTextField60 = new javax.swing.JTextField();
    jTextField61 = new javax.swing.JTextField();
    jTextField62 = new javax.swing.JTextField();
    jTextField63 = new javax.swing.JTextField();
    jTextField64 = new javax.swing.JTextField();
    jTextField65 = new javax.swing.JTextField();
    jTextField66 = new javax.swing.JTextField();
    jTextField67 = new javax.swing.JTextField();
    jTextField68 = new javax.swing.JTextField();
    jTextField69 = new javax.swing.JTextField();
    jTextField70 = new javax.swing.JTextField();
    jTextField71 = new javax.swing.JTextField();
    jTextField72 = new javax.swing.JTextField();
    jTextField73 = new javax.swing.JTextField();
    jTextField74 = new javax.swing.JTextField();
    jTextField75 = new javax.swing.JTextField();
    jTextField76 = new javax.swing.JTextField();
    jTextField77 = new javax.swing.JTextField();
    jTextField78 = new javax.swing.JTextField();
    jTextField79 = new javax.swing.JTextField();
    jTextField80 = new javax.swing.JTextField();
    jTextField81 = new javax.swing.JTextField();
    jButton1 = new javax.swing.JButton();
    menuBar = new javax.swing.JMenuBar();
    javax.swing.JMenu fileMenu = new javax.swing.JMenu();
    newMenuItem = new javax.swing.JMenuItem();
    openMenuItem = new javax.swing.JMenuItem();
    saveMenuItem = new javax.swing.JMenuItem();
    javax.swing.JMenuItem exitMenuItem = new javax.swing.JMenuItem();
    javax.swing.JMenu helpMenu = new javax.swing.JMenu();
    javax.swing.JMenuItem aboutMenuItem = new javax.swing.JMenuItem();
    statusPanel = new javax.swing.JPanel();
    javax.swing.JSeparator statusPanelSeparator = new javax.swing.JSeparator();
    statusMessageLabel = new javax.swing.JLabel();
    statusAnimationLabel = new javax.swing.JLabel();
    progressBar = new javax.swing.JProgressBar();

    mainPanel.setName("mainPanel"); // NOI18N

    org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(sudoku.SudokuApp.class).getContext().getResourceMap(SudokuView.class);
    jTextField1.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField1.setName("jTextField1"); // NOI18N

    jTextField2.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField2.setName("jTextField2"); // NOI18N

    jTextField3.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField3.setName("jTextField3"); // NOI18N

    jTextField4.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField4.setName("jTextField4"); // NOI18N

    jTextField5.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField5.setName("jTextField5"); // NOI18N

    jTextField6.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField6.setName("jTextField6"); // NOI18N

    jTextField7.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField7.setName("jTextField7"); // NOI18N

    jTextField8.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField8.setName("jTextField8"); // NOI18N

    jTextField9.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField9.setName("jTextField9"); // NOI18N

    jTextField10.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField10.setName("jTextField10"); // NOI18N

    jTextField11.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField11.setName("jTextField11"); // NOI18N

    jTextField12.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField12.setName("jTextField12"); // NOI18N

    jTextField13.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField13.setName("jTextField13"); // NOI18N

    jTextField14.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField14.setName("jTextField14"); // NOI18N

    jTextField15.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField15.setName("jTextField15"); // NOI18N

    jTextField16.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField16.setName("jTextField16"); // NOI18N

    jTextField17.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField17.setName("jTextField17"); // NOI18N

    jTextField18.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField18.setName("jTextField18"); // NOI18N

    jTextField19.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField19.setName("jTextField19"); // NOI18N

    jTextField20.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField20.setName("jTextField20"); // NOI18N

    jTextField21.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField21.setName("jTextField21"); // NOI18N

    jTextField22.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField22.setName("jTextField22"); // NOI18N

    jTextField23.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField23.setName("jTextField23"); // NOI18N

    jTextField24.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField24.setName("jTextField24"); // NOI18N

    jTextField25.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField25.setName("jTextField25"); // NOI18N

    jTextField26.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField26.setName("jTextField26"); // NOI18N

    jTextField27.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField27.setName("jTextField27"); // NOI18N

    jTextField28.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField28.setName("jTextField28"); // NOI18N

    jTextField29.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField29.setName("jTextField29"); // NOI18N

    jTextField30.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField30.setName("jTextField30"); // NOI18N

    jTextField31.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField31.setName("jTextField31"); // NOI18N

    jTextField32.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField32.setName("jTextField32"); // NOI18N

    jTextField33.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField33.setName("jTextField33"); // NOI18N

    jTextField34.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField34.setName("jTextField34"); // NOI18N

    jTextField35.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField35.setName("jTextField35"); // NOI18N

    jTextField36.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField36.setName("jTextField36"); // NOI18N

    jTextField37.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField37.setName("jTextField37"); // NOI18N

    jTextField38.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField38.setName("jTextField38"); // NOI18N

    jTextField39.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField39.setName("jTextField39"); // NOI18N

    jTextField40.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField40.setName("jTextField40"); // NOI18N

    jTextField41.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField41.setName("jTextField41"); // NOI18N

    jTextField42.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField42.setName("jTextField42"); // NOI18N

    jTextField43.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField43.setName("jTextField43"); // NOI18N

    jTextField44.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField44.setName("jTextField44"); // NOI18N

    jTextField45.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField45.setName("jTextField45"); // NOI18N

    jTextField46.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField46.setName("jTextField46"); // NOI18N

    jTextField47.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField47.setName("jTextField47"); // NOI18N

    jTextField48.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField48.setName("jTextField48"); // NOI18N

    jTextField49.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField49.setName("jTextField49"); // NOI18N

    jTextField50.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField50.setName("jTextField50"); // NOI18N

    jTextField51.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField51.setName("jTextField51"); // NOI18N

    jTextField52.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField52.setName("jTextField52"); // NOI18N

    jTextField53.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField53.setName("jTextField53"); // NOI18N

    jTextField54.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField54.setName("jTextField54"); // NOI18N

    jTextField55.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField55.setName("jTextField55"); // NOI18N

    jTextField56.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField56.setName("jTextField56"); // NOI18N

    jTextField57.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField57.setName("jTextField57"); // NOI18N

    jTextField58.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField58.setName("jTextField58"); // NOI18N

    jTextField59.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField59.setName("jTextField59"); // NOI18N

    jTextField60.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField60.setName("jTextField60"); // NOI18N

    jTextField61.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField61.setName("jTextField61"); // NOI18N

    jTextField62.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField62.setName("jTextField62"); // NOI18N

    jTextField63.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField63.setName("jTextField63"); // NOI18N

    jTextField64.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField64.setName("jTextField64"); // NOI18N

    jTextField65.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField65.setName("jTextField65"); // NOI18N

    jTextField66.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField66.setName("jTextField66"); // NOI18N

    jTextField67.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField67.setName("jTextField67"); // NOI18N

    jTextField68.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField68.setName("jTextField68"); // NOI18N

    jTextField69.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField69.setName("jTextField69"); // NOI18N

    jTextField70.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField70.setName("jTextField70"); // NOI18N

    jTextField71.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField71.setName("jTextField71"); // NOI18N

    jTextField72.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField72.setName("jTextField72"); // NOI18N

    jTextField73.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField73.setName("jTextField73"); // NOI18N

    jTextField74.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField74.setName("jTextField74"); // NOI18N

    jTextField75.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField75.setName("jTextField75"); // NOI18N

    jTextField76.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField76.setName("jTextField76"); // NOI18N

    jTextField77.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField77.setName("jTextField77"); // NOI18N

    jTextField78.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField78.setName("jTextField78"); // NOI18N

    jTextField79.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField79.setName("jTextField79"); // NOI18N

    jTextField80.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField80.setName("jTextField80"); // NOI18N

    jTextField81.setText(resourceMap.getString("jTextField1.text")); // NOI18N
    jTextField81.setName("jTextField81"); // NOI18N

    javax.swing.ActionMap actionMap = org.jdesktop.application.Application.getInstance(sudoku.SudokuApp.class).getContext().getActionMap(SudokuView.class, this);
    jButton1.setAction(actionMap.get("NextSudoku")); // NOI18N
    jButton1.setText(resourceMap.getString("jButton1.text")); // NOI18N
    jButton1.setName("jButton1"); // NOI18N

    javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel);
    mainPanel.setLayout(mainPanelLayout);
    mainPanelLayout.setHorizontalGroup(
    mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(mainPanelLayout.createSequentialGroup()
    .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(mainPanelLayout.createSequentialGroup()
    .addGap(69, 69, 69)
    .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(mainPanelLayout.createSequentialGroup()
    .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(mainPanelLayout.createSequentialGroup()
    .addComponent(jTextField73, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField74, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField75, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED))
    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, mainPanelLayout.createSequentialGroup()
    .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
    .addComponent(jTextField64, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addComponent(jTextField55, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE))
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addComponent(jTextField56, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addComponent(jTextField65, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE))
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addComponent(jTextField57, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addComponent(jTextField66, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE))
    .addGap(10, 10, 10)))
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, mainPanelLayout.createSequentialGroup()
    .addComponent(jTextField58, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField59, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField60, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addGap(10, 10, 10))
    .addGroup(mainPanelLayout.createSequentialGroup()
    .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, mainPanelLayout.createSequentialGroup()
    .addComponent(jTextField76, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
    .addComponent(jTextField77, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField78, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE))
    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, mainPanelLayout.createSequentialGroup()
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField67, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField68, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField69, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)))
    .addGap(10, 10, 10)))
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(mainPanelLayout.createSequentialGroup()
    .addComponent(jTextField79, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField80, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField81, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE))
    .addGroup(mainPanelLayout.createSequentialGroup()
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField70, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField71, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField72, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE))
    .addGroup(mainPanelLayout.createSequentialGroup()
    .addComponent(jTextField61, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField62, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField63, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE))))
    .addGroup(mainPanelLayout.createSequentialGroup()
    .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, mainPanelLayout.createSequentialGroup()
    .addComponent(jTextField46, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField47, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField48, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addGap(10, 10, 10))
    .addGroup(mainPanelLayout.createSequentialGroup()
    .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
    .addGroup(mainPanelLayout.createSequentialGroup()
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField28, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField29, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE))
    .addGroup(mainPanelLayout.createSequentialGroup()
    .addComponent(jTextField37, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
    .addComponent(jTextField38, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)))
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addComponent(jTextField39, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addComponent(jTextField30, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE))
    .addGap(10, 10, 10)))
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, mainPanelLayout.createSequentialGroup()
    .addComponent(jTextField49, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField50, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField51, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addGap(10, 10, 10))
    .addGroup(mainPanelLayout.createSequentialGroup()
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField40, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField41, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField42, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)))
    .addGroup(mainPanelLayout.createSequentialGroup()
    .addComponent(jTextField31, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField32, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField33, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)))
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, mainPanelLayout.createSequentialGroup()
    .addComponent(jTextField52, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField53, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
    .addComponent(jTextField54, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE))
    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, mainPanelLayout.createSequentialGroup()
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField43, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField44, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField45, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)))
    .addGroup(mainPanelLayout.createSequentialGroup()
    .addComponent(jTextField34, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField35, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField36, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE))))
    .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
    .addGroup(mainPanelLayout.createSequentialGroup()
    .addComponent(jTextField10, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField11, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField12, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE))
    .addGroup(mainPanelLayout.createSequentialGroup()
    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)))
    .addGroup(mainPanelLayout.createSequentialGroup()
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField19, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jTextField20, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    0
  13. azerty363 Messages postés 7 Date d'inscription   Statut Membre
     
    avec en plus

    *
    * SudokuApp.java
    */

    package sudoku;

    import org.jdesktop.application.Application;
    import org.jdesktop.application.SingleFrameApplication;

    /**
    * The main class of the application.
    */
    public class SudokuApp extends SingleFrameApplication {

    /**
    * At startup create and show the main frame of the application.
    */
    @Override protected void startup() {
    show(new SudokuView(this));
    }

    /**
    * This method is to initialize the specified window by injecting resources.
    * Windows shown in our application come fully initialized from the GUI
    * builder, so this additional configuration is not needed.
    */
    @Override protected void configureWindow(java.awt.Window root) {
    }

    /**
    * A convenient static getter for the application instance.
    * @return the instance of SudokuApp
    */
    public static SudokuApp getApplication() {
    return Application.getInstance(SudokuApp.class);
    }

    /**
    * Main method launching the application.
    */
    public static void main(String[] args) {
    launch(SudokuApp.class, args);
    }
    }
    0
  14. azerty363 Messages postés 7 Date d'inscription   Statut Membre
     
    et,

    /*
    * SudokuAboutBox.java
    */

    package sudoku;

    import org.jdesktop.application.Action;

    public class SudokuAboutBox extends javax.swing.JDialog {

    public SudokuAboutBox(java.awt.Frame parent) {
    super(parent);
    initComponents();
    getRootPane().setDefaultButton(closeButton);
    }

    @Action public void closeAboutBox() {
    setVisible(false);
    }

    /** This method is called from within the constructor to
    * initialize the form.
    * WARNING: Do NOT modify this code. The content of this method is
    * always regenerated by the Form Editor.
    */
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

    closeButton = new javax.swing.JButton();
    javax.swing.JLabel appTitleLabel = new javax.swing.JLabel();
    javax.swing.JLabel versionLabel = new javax.swing.JLabel();
    javax.swing.JLabel appVersionLabel = new javax.swing.JLabel();
    javax.swing.JLabel vendorLabel = new javax.swing.JLabel();
    javax.swing.JLabel appVendorLabel = new javax.swing.JLabel();
    javax.swing.JLabel homepageLabel = new javax.swing.JLabel();
    javax.swing.JLabel appHomepageLabel = new javax.swing.JLabel();
    javax.swing.JLabel appDescLabel = new javax.swing.JLabel();
    javax.swing.JLabel imageLabel = new javax.swing.JLabel();

    setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
    org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(sudoku.SudokuApp.class).getContext().getResourceMap(SudokuAboutBox.class);
    setTitle(resourceMap.getString("title")); // NOI18N
    setModal(true);
    setName("aboutBox"); // NOI18N
    setResizable(false);

    javax.swing.ActionMap actionMap = org.jdesktop.application.Application.getInstance(sudoku.SudokuApp.class).getContext().getActionMap(SudokuAboutBox.class, this);
    closeButton.setAction(actionMap.get("closeAboutBox")); // NOI18N
    closeButton.setName("closeButton"); // NOI18N

    appTitleLabel.setFont(appTitleLabel.getFont().deriveFont(appTitleLabel.getFont().getStyle() | java.awt.Font.BOLD, appTitleLabel.getFont().getSize()+4));
    appTitleLabel.setText(resourceMap.getString("Application.title")); // NOI18N
    appTitleLabel.setName("appTitleLabel"); // NOI18N

    versionLabel.setFont(versionLabel.getFont().deriveFont(versionLabel.getFont().getStyle() | java.awt.Font.BOLD));
    versionLabel.setText(resourceMap.getString("versionLabel.text")); // NOI18N
    versionLabel.setName("versionLabel"); // NOI18N

    appVersionLabel.setText(resourceMap.getString("Application.version")); // NOI18N
    appVersionLabel.setName("appVersionLabel"); // NOI18N

    vendorLabel.setFont(vendorLabel.getFont().deriveFont(vendorLabel.getFont().getStyle() | java.awt.Font.BOLD));
    vendorLabel.setText(resourceMap.getString("vendorLabel.text")); // NOI18N
    vendorLabel.setName("vendorLabel"); // NOI18N

    appVendorLabel.setText(resourceMap.getString("Application.vendor")); // NOI18N
    appVendorLabel.setName("appVendorLabel"); // NOI18N

    homepageLabel.setFont(homepageLabel.getFont().deriveFont(homepageLabel.getFont().getStyle() | java.awt.Font.BOLD));
    homepageLabel.setText(resourceMap.getString("homepageLabel.text")); // NOI18N
    homepageLabel.setName("homepageLabel"); // NOI18N

    appHomepageLabel.setText(resourceMap.getString("Application.homepage")); // NOI18N
    appHomepageLabel.setName("appHomepageLabel"); // NOI18N

    appDescLabel.setText(resourceMap.getString("appDescLabel.text")); // NOI18N
    appDescLabel.setName("appDescLabel"); // NOI18N

    imageLabel.setIcon(resourceMap.getIcon("imageLabel.icon")); // NOI18N
    imageLabel.setName("imageLabel"); // NOI18N

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(layout.createSequentialGroup()
    .addComponent(imageLabel)
    .addGap(18, 18, 18)
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addComponent(versionLabel)
    .addComponent(vendorLabel)
    .addComponent(homepageLabel))
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addComponent(appVersionLabel)
    .addComponent(appVendorLabel)
    .addComponent(appHomepageLabel)))
    .addComponent(appTitleLabel, javax.swing.GroupLayout.Alignment.LEADING)
    .addComponent(appDescLabel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 270, Short.MAX_VALUE)
    .addComponent(closeButton))
    .addContainerGap())
    );
    layout.setVerticalGroup(
    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addComponent(imageLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 191, Short.MAX_VALUE)
    .addGroup(layout.createSequentialGroup()
    .addContainerGap()
    .addComponent(appTitleLabel)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(appDescLabel)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
    .addComponent(versionLabel)
    .addComponent(appVersionLabel))
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
    .addComponent(vendorLabel)
    .addComponent(appVendorLabel))
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
    .addComponent(homepageLabel)
    .addComponent(appHomepageLabel))
    .addGap(33, 33, Short.MAX_VALUE)
    .addComponent(closeButton)
    .addContainerGap())
    );

    pack();
    }// </editor-fold>

    // Variables declaration - do not modify
    private javax.swing.JButton closeButton;
    // End of variables declaration

    }
    0
  15. azerty363 Messages postés 7 Date d'inscription   Statut Membre
     
    Les 3 .java constituent mon package Sudoku.
    Le gros c'est créé tout seul ou de manière graphique.

    J'espère que je ne vous ai pas noyé.
    Je vous montre le projet en entier pour que vous puissiez l'executer chez vous pour comprendre le fonctionnement et m'aider à simplifier des parties non élégantes (horribles pour être franc) de mon code.
    0
  16. azerty363
     
    Merci Sandul,

    Le code est mieux.
    Par contre graphiquement, c'est un peu moche et il y a des options à rajouter : menu, bouton "next"...
    0
    1. sandul Messages postés 4013 Statut Membre 723
       
      Par contre graphiquement, c'est un peu moche <== Absolument d'accord avec toi. Je n'ai fait aucun effort pour rajouter quoi que ce soit autour (à part un bouton d'aide, pour montrer qu'on peut le faire avec une gestion totale de la part de l'IDE). Menu, toolbar, look and feel (par exemple Looks, gratuit et excellent ici: http://www.jgoodies.com/ ), tout ce que tu veux. Le but de mon code était de monter la création du tableau.

      ++
      0
  17. azerty363
     
    // Ici tu vas mettre tout le code nécessaire pour bien gérer la cellule qui vient d'être créée:
    // Positionnement du texte (center), un seul caractère autorisé (chiffre de 0 à 9), éventuellement le font...
    // Egalement un listener pour chaque cell, car probablement tu voudras modifier l'affichage
    // dès qu'une mauvaise valeur est rentrée (genre changer la couleur et la dessiner en rouge)

    Tu peux me montrer comment faire tout ça, STP.

    Pour détecter une mauvaise valeur, j'ai déjà le code qui faut.
    Par contre, changer la couleur en rouge, je sais pas.
    Ca doit être un truc du genre object.setColors("red").
    0
  18. azerty363
     
    Menu, toolbar, look and feel (par exemple Looks, gratuit et excellent ici: http://www.jgoodies.com/ )

    c'est trop bien comme site pour le moment
    je veux du code plus petit donc plus facile à comprendre pour m'améliorer progréssivement

    Positionnement du texte (center), un seul caractère autorisé (chiffre de 0 à 9) ?
    0