Problème de boutons en Java
Bonjour,
Je désire créer un interface graphique en Java de cette manière :
Mon programme calcule des possibilités de solutions à un problème. Lorsqu'il trouve une solution, il affiche une fenêtre avec la solution et deux boutons, un pour arrêter le calcul et l'autre pour chercher la solution suivante.
Je voudrais donc que lorsqu'il ouvre la fenêtre:
1) Il s'arrête de calculer et attende de savoir ce qu'il doit faire.
2) Et que la suite dépende du bouton sur lequel on clique.
J'ai créé dans ma classe, une méthode qui affiche le résultat:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| int AfficheResultat(int[][] X){
ResultatFenetre fenetre = new ResultatFenetre(X,name);
fenetre.setVisible(true);
int x;
/* c'est ici que je voudrais quelque chose du genre
* if(on a cliqué sur bouton1){
* x = 1;
* }
* else if (on a cliqué sur bouton2){
* x = 0;
* }
*/
return x;
} |
Où ma classe ResultatFenetre ressemble à ceci
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| class ResultatFenetre extends JFrame{
int[][] Resultat;
String[] Noms;
public ResultatFenetre(int[][] X, String[] N){
super();
Resultat = new int[X.length][X[0].length];
Resultat = X;
Noms = new String[N.length];
Noms = N;
build(); //On initialise notre fenêtre
}
private void build(){
setTitle("Prochaine possibilite");
setSize(550,200);
setLocationRelativeTo(null);
setResizable(true);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setContentPane(buildContentPane());
}
private JPanel buildContentPane(){
JPanel panel = new JPanel();
panel.setBackground(Color.white);
GridLayout tableau = new GridLayout(Resultat.length+1, Resultat[0].length+1, 5,5);
panel.setLayout(tableau);
panel.applyComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
for (int i = 0 ; i < Resultat.length ; i ++){
panel.add(new JLabel(Noms[i]));
for (int j = 0; j < Resultat[i].length; ++j){
String nome;
if(Resultat[i][j] == 1){
nome = "X";
} else{
nome = "-";
}
panel.add(new JLabel(nome));
}
System.out.println("er2");
}
panel.add(new JLabel(" "));
JButton bouton1 = new JButton(new IciAction("Stop"));
panel.add(bouton1);
for (int i = 0; i< Resultat[0].length-3;i++){
panel.add(new JLabel(" "));
}
JButton bouton2 = new JButton(new LaAction("Next"));
panel.add(bouton2);
panel.add(new JLabel(" "));
return panel;
}
} |
Avec les boutons
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| class IciAction extends AbstractAction {
public IciAction(String texte){
super(texte);
}
public void actionPerformed(ActionEvent e) {
System.out.println("Vous avez clique ici");
}
}
class LaAction extends AbstractAction {
public LaAction(String texte){
super(texte);
}
public void actionPerformed(ActionEvent e) {
System.out.println("Vous avez clique la");
}
} |
J'ai déjà tenté de rajouter un attribut aux classes IciAction et LaAction, qui changent avec actionPerformed mais après je n'arrive pas à y accéder.
Quelqu'un saurait-il m'expliquer comment faire ?
Merci d'avance pour votre aide.