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 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177
| import java.awt.FlowLayout;
import java.awt.event.ActionListener;
import java.util.Iterator;
import java.util.Scanner;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class constructeur extends JFrame {
private Vector arbres;
int profondeur;
int nbreNoeud;
int nbreF;
int moy;
private static JTextField textFieldNd;
private static JTextField textFieldPr;
private static JTextField textFieldF;
private static JTextField textFieldBr;
private static JTextField textFieldEc;
private JLabel labelNd, labelPr, labelF, labelBr, labelEc;
private JButton bouton;
public constructeur() {
super();
build();// On initialise notre fenêtre
}
private void build() {
setTitle("Fenêtre qui demande du texte"); // On donne un titre à
// l'application
setSize(500, 500); // On donne une taille à notre fenêtre
setLocationRelativeTo(null); // On centre la fenêtre sur l'écran
setResizable(true); // On permet le redimensionnement
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // On dit à
// l'application de se
// fermer lors du clic
// sur la croix
setContentPane(buildContentPane());
}
private JPanel buildContentPane() {
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
labelNd = new JLabel("nombre de noeud");
panel.add(labelNd);
textFieldNd = new JTextField();
textFieldNd.setColumns(10);
panel.add(textFieldNd);
labelPr = new JLabel("la profondeur");
panel.add(labelPr);
textFieldPr = new JTextField();
textFieldPr.setColumns(10);
panel.add(textFieldPr);
labelF = new JLabel("le nombre de feuilles");
panel.add(labelF);
textFieldF = new JTextField();
textFieldF.setColumns(10);
panel.add(textFieldF);
labelBr = new JLabel("le nombre de branches");
panel.add(labelBr);
textFieldBr = new JTextField();
textFieldBr.setColumns(10);
panel.add(textFieldBr);
labelEc = new JLabel("ecart");
panel.add(labelEc);
textFieldEc = new JTextField();
textFieldEc.setColumns(10);
panel.add(textFieldEc);
bouton = new JButton("Créer");
panel.add(bouton);
return panel;
bouton.setActionCommand("action_bouton");
bouton.addActionListener(new ActionListener(this));
// méthode redéfinie de l'interface ActionListener implémentée par la classe ayant ton bouton, soit constructeur
public void actionPerformed( ActionEvent ae){
if ( ae.getActionCommand().equals("action_bouton") {
int moy = (n - 1) / (n - nf);
System.out.println("la moyenne des fils par noeud est : " + moy);
System.out.println("rapport=" + (float) p / (nf * nf));
constructeur ex1 = new constructeur(n, p, nf, moy);
if (ex1.verification(n, nf, p) == false) {
System.out.println("pas de possibilité de construction");
} else {
for (int i = 0; i < 10; i++) {
Arbre a = new Arbre();
a.remplirnoeuds(n);
a.arbrepartiel(p);
a.remplirFI(p, nf);
a.remplirLiensNI(p, ec, nbbr);
a.remplirLiensNF(p, ec);
a.export(i);
a.export_caracteristiques(i, p, n, nf);
}
}
}
}
}
public constructeur(int n, int p, int nf, int moy) {
this.arbres = new Vector<Arbre>();
this.profondeur = p;
this.nbreF = nf;
this.nbreNoeud = n;
this.moy = moy;
}
public boolean verification(int n, int nf, int p) {
boolean ok = false;
if ((p <= (n - nf))) {
ok = true;
} else {
ok = false;
}
return ok;
}
/**
* @param args
*/
public static void main(String[] args) {
constructeur fenetre = new constructeur();
fenetre.setVisible(true);// On la rend visible
int n = Integer.parseInt(textFieldNd.getText());
int p = Integer.parseInt(textFieldPr.getText());
int nf = Integer.parseInt(textFieldF.getText());
int nbbr = Integer.parseInt(textFieldBr.getText());
int ec = Integer.parseInt(textFieldEc.getText());
/*
int moy = (n - 1) / (n - nf);
System.out.println("la moyenne des fils par noeud est : " + moy);
System.out.println("rapport=" + (float) p / (nf * nf));
constructeur ex1 = new constructeur(n, p, nf, moy);
if (ex1.verification(n, nf, p) == false) {
System.out.println("pas de possibilité de construction");
} else {
for (int i = 0; i < 10; i++) {
Arbre a = new Arbre();
a.remplirnoeuds(n);
a.arbrepartiel(p);
a.remplirFI(p, nf);
a.remplirLiensNI(p, ec, nbbr);
a.remplirLiensNF(p, ec);
a.export(i);
a.export_caracteristiques(i, p, n, nf);
}
}
*/
}
} |