(Java) grand nombre de champs de texte

Fermé
azerty363 Messages postés 7 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 21 août 2008 - 21 août 2008 à 19:39
sandul Messages postés 3924 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 - 22 août 2008 à 12:57
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
A voir également:

17 réponses

sandul Messages postés 3924 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 722
22 août 2008 à 10:22
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
sandul Messages postés 3924 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 722
22 août 2008 à 12:57
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
artragis Messages postés 481 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 6 avril 2010 146
21 août 2008 à 20:02
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
azerty363 Messages postés 7 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 21 août 2008
21 août 2008 à 20:16
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
artragis Messages postés 481 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 6 avril 2010 146
21 août 2008 à 20:23
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
sandul Messages postés 3924 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 722
21 août 2008 à 20:25
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
artragis Messages postés 481 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 6 avril 2010 146
21 août 2008 à 20:29
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
sandul Messages postés 3924 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 722
21 août 2008 à 20:40
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
artragis Messages postés 481 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 6 avril 2010 146
21 août 2008 à 20:48
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
azerty363 Messages postés 7 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 21 août 2008
21 août 2008 à 20:53
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
azerty363 Messages postés 7 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 21 août 2008
21 août 2008 à 20:59
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
azerty363 Messages postés 7 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 21 août 2008
21 août 2008 à 21:01
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
azerty363 Messages postés 7 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 21 août 2008
21 août 2008 à 21:02
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
azerty363 Messages postés 7 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 21 août 2008
21 août 2008 à 21:08
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
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
sandul Messages postés 3924 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 722
22 août 2008 à 11:05
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
// 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
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