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 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
| class Fenetre extends JFrame implements ActionListener { //implements ActionListener
Fenetre(){
setTitle ("IFS ");
setSize (800, 550);
pan = new JPanel();
pan.setSize(800,550);
//(...)
JMenuBar barreMenus = new JMenuBar(); // barre de menus.
setJMenuBar (barreMenus);
//(...)
JMenu Transfo = new JMenu ("Transformation"); // Menu Transformation.
barreMenus.add(Transfo);
SauverTransfo = new JMenuItem ("Sauver les modifications");
SauverTransfo.addActionListener (this);
Transfo.add(SauverTransfo);
TransfoMoins = new JMenuItem ("Transformation précédente");
TransfoMoins.addActionListener (this);
Transfo.add(TransfoMoins);
TransfoPlus = new JMenuItem ("Transformation suivante");
TransfoPlus.addActionListener (this);
Transfo.add(TransfoPlus);
C1 = new PlanC(); /*C1 est une fenêtre de JSpinners avec écouteurs.*/
C1.setVisible(true); /*C1 est doté de méthodes set et get.*/
}
public void actionPerformed (ActionEvent e){
Object source = e.getSource();
ValPlan VP = new ValPlan();
/* Si je n'instancie pas ici VP et TDP[], rien ne marche, mais alors je ne peux bien évidemment pas stocker les valeurs puisque elles sont réinitialisées !*/
nT = 4;
ValTransfo TDP[] = new ValTransfo[nT]; //Tableau de transformations.
VP.setRedValP(0);
/*enregistrement des valeurs par défaut. Le tableau n'est pas conservé si je fais ceci dans la méthode « Nouveau », ce qu'il faudra bien faire pourtant...*/
VP.setGreenValP(0);
//(etc, pour les autres valeurs...)
for (i=0; i<nT; i++){
TDP[i] = new ValTransfo();
TDP[i].setRotVal(0); /* Même remarque...*/
//(etc, pour les autres valeurs...)
}
if (source == Nouveau) {
/* Si j'enregistre ici les valeurs par défaut, le tableau est perdu ensuite!*/
VP.setRedValP(0);
VP.setGreenValP(0);
//(.etc, pour les autres valeurs..)
for (i=0; i<nT; i++){
TDP[i] = new ValTransfo();
TDP[i].setRotVal(0);
//(etc, pour les autres valeurs ...)
}
}
if (source == SauverTransfo) {
/*ceci marche depuis que j'ai précisé que C1 était « final PlanC C1 », et non « PlanC C1 » tout seul*/
int i = C1.getiT();
RotVal = C1.getRotation();
HomXVal = C1.getHomotetieX();
//(.etc, pour les autres valeurs..)
/*Ceci ne marche pas*/
TDP[i].setRotVal(RotVal);
TDP[i].setSymXVal(SymXVal);
//(etc, pour les autres valeurs ...)
}
if (source == TransfoPlus) {
/*On veut ici rappeler à la fenêtre de Jspinners les valeurs du tableau*/
int i = C1.getiT();
if (i<(nT-1)){
i++;
C1.setiT(i);
C1.setRotation(TDP[i].getRotVal());
C1.setSymetrieX(TDP[i].getSymXVal());
//(etc, pour les autres valeurs ...)
}
else{
}
}
if (source == TransfoMoins) {
/*(similaire à la précédente)*/
}
}
private JPanel pan;
private JMenu Fichiers, Film, Plan, Transfo;
private JMenuItem Nouveau, Ouvrir, Enregistrer, ExportFilm, CalculFilm, MontrerCont;
private JMenuItem ExportPlan, AllerPlan, TracePlan, SauvePlan;
private JMenuItem SauverTransfo, TransfoPlus, TransfoMoins;
final public PlanC C1;
public Color CouleurT, CFd;
public double A, B, C, D, E, F, ProbVal;
public double HomXVal, HomYVal, TransXVal, TransYVal;
public int RotVal, SymXVal, SymYVal, RedVal, GreenVal, BlueVal;
public int RedValP, GreenValP, BlueValP, CadreXVal, CadreYVal, NbrePts;
public int nT, i, iT, nP;
public int ZoomVal;
double AnRad;
private ValTransfo TDP[];//cela ne marche pas mieux avec public...
private ValPlan VP;//idem.
} |
Partager