Partage
  • Partager sur Facebook
  • Partager sur Twitter

traduire l'affichage en mode console vers une interface

    19 mai 2011 à 7:59:02

    Bonjour,
    J’ai programme java sous eclipse qui s’exécute mode console. Je voulais créer une interface qui contient un panel où il y a des lables, des zones de textes et un bouton. Au lieu de saisir les données dans la console alors on va les introduire à partir de l’interface.
    Voici la partie main de mon application qui contient les données à saisir :

    public static void main(String[] args) {
    		// TODO Auto-generated method stub
    
    		Scanner NbreNoeud = new Scanner(System.in);
    		System.out.println("Veuillez saisir le nombre de noeud :");
    		int n = NbreNoeud.nextInt();
    		Scanner prof = new Scanner(System.in);
    		System.out.println("Veuillez saisir la profondeur :");
    		int p = prof.nextInt();
    		Scanner NbreF = new Scanner(System.in);
    		System.out.println("Veuillez saisir le nombre de feuilles :");
    		int nf = NbreF.nextInt();
    		System.out.println("Veuillez saisir le nombre de branches :");
    		int nbbr = NbreF.nextInt();
    		System.out.println("Veuillez saisir ecart :");
    		int ec = NbreF.nextInt();
    		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);
    
    			}
    		}
    	}
    


    Je voulais créer un label et une zone de texte pour chacune des données suivantes:
    - le nombre de noeud : on va récuperer la valeur saisie dans la variable "n"
    - la profondeur : on va récuperer la valeur saisie dans la variable "p"
    - le nombre de feuilles : on va récupérer la valeur saisie dans la variable "nf"
    - le nombre de branches : on va récupérer la valeur saisie dans la variable "nbbr"
    - ecart : on va récupérer la valeur saisie dans la variable "ec"

    et à la fin une bouton lorsque on clique sur cet bouton nommé "créer" alors on aura l'exécution de cette partie de code:
    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);
    
    			}
    		}
    


    Quelles sont les modifications à faire (les importations nécessaires, le code à ajouter,etc) sur mon programme pour créer cette interface qui va contenir dans un panel les labels, les zones de texte et le bouton.

    Voici le code complet de la classe qui contient main :
    import java.util.Iterator;
    import java.util.Scanner;
    import java.util.Vector;
    
    public class constructeur {
    	private Vector arbres;
    	int profondeur;
    	int nbreNoeud;
    	int nbreF;
    	int moy;
    
    	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) {
    		// TODO Auto-generated method stub
    
    		Scanner NbreNoeud = new Scanner(System.in);
    		System.out.println("Veuillez saisir le nombre de noeud :");
    		int n = NbreNoeud.nextInt();
    		Scanner prof = new Scanner(System.in);
    		System.out.println("Veuillez saisir la profondeur :");
    		int p = prof.nextInt();
    		Scanner NbreF = new Scanner(System.in);
    		System.out.println("Veuillez saisir le nombre de feuilles :");
    		int nf = NbreF.nextInt();
    		System.out.println("Veuillez saisir le nombre de branches :");
    		int nbbr = NbreF.nextInt();
    		System.out.println("Veuillez saisir ecart :");
    		int ec = NbreF.nextInt();
    		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);
    
    			}
    		}
    	}
    }
    


    Merci.
    • Partager sur Facebook
    • Partager sur Twitter
      19 mai 2011 à 9:04:25

      Je te conseille Swing pour faire ton interface graphique. Mais il n'y a pas de méthode miracle pour générer une GUI à partir d'un code console existant.
      C'est à toi de voir comment tu comptes mettre en place ton interface.
      • Partager sur Facebook
      • Partager sur Twitter
        22 mai 2011 à 17:24:08

        Bonjour,

        j'ai essayé de faire une interface mais j'ai eu des erreurs de compilations au niveau de récupération de texte saisie dans la zone de texte "JTextField".
        Aussi je n'arrive pas à programmer le bouton pour qu'il exécute une telle partie de code.
        Quels sont les modifications à faire pour :
        - récupérer les valeurs de zones de texte.
        - programmer le code du bouton pour qu'il exécuté le code suivant de mon programme:

        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);
        
        			}
        		}
        



        Voici le message d'erreurs:

        Citation

        Exception in thread "main" java.lang.Error: Unresolved compilation problems:
        Cannot make a static reference to the non-static field textFieldNd
        Cannot make a static reference to the non-static field textFieldPr
        Cannot make a static reference to the non-static field textFieldF
        Cannot make a static reference to the non-static field textFieldBr
        Cannot make a static reference to the non-static field textFieldEc

        at constructeur.main(constructeur.java:270)



        Voici le code complet:

        import java.awt.FlowLayout;
        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 JTextField textFieldNd, textFieldPr, textFieldF, textFieldBr,
        			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 
        		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;
        	}
        
        	public JTextField getTextField1() {
        
        		return textFieldNd;
        	}
        
        	public JLabel getLabel1() {
        		return labelNd;
        	}
        
        	public JTextField getTextField2() {
        
        		return textFieldPr;
        	}
        
        	public JLabel getLabel2() {
        		return labelPr;
        	}
        
        	public JTextField getTextField3() {
        
        		return textFieldF;
        	}
        
        	public JLabel getLabel3() {
        		return labelF;
        	}
        
        	public JTextField getTextField4() {
        
        		return textFieldBr;
        	}
        
        	public JLabel getLabel4() {
        		return labelBr;
        	}
        
        	public JTextField getTextField5() {
        
        		return textFieldEc;
        	}
        
        	public JLabel getLabel5() {
        		return labelEc;
        	}
        
        	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) {
        		// TODO Auto-generated method stub
        
        		constructeur fenetre = new constructeur();
        		fenetre.setVisible(true);// On la rend visible
        	
        		int n = textFieldNd.getTextField1();
        		int p = textFieldPr.getTextField2();
        		int nf = textFieldF.getTextField3();
        		int nbbr = textFieldBr.getTextField4();
        		int ec = textFieldEc.getTextField5();
        
        		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);
        
        			}
        		}
        
        	}
        }
        



        Merci.
        • Partager sur Facebook
        • Partager sur Twitter
          26 mai 2011 à 8:28:28

          Bonjour,

          J'ai mis des nouvelles modifications mais j'ai des erreurs de compilation suivantes:

          Citation



          Exception in thread "main" java.lang.Error: Unresolved compilation problems:
          Cannot instantiate the type ActionListener
          void is an invalid type for the variable actionPerformed
          Syntax error on token "(", ; expected
          ActionEvent cannot be resolved to a type
          Syntax error on token ")", ; expected
          Syntax error, insert ") Statement" to complete BlockStatements
          n cannot be resolved to a variable
          n cannot be resolved to a variable
          nf cannot be resolved to a variable
          p cannot be resolved to a variable
          nf cannot be resolved to a variable
          nf cannot be resolved to a variable
          n cannot be resolved to a variable
          p cannot be resolved to a variable
          nf cannot be resolved to a variable
          n cannot be resolved to a variable
          nf cannot be resolved to a variable
          p cannot be resolved to a variable
          n cannot be resolved to a variable
          p cannot be resolved to a variable
          p cannot be resolved to a variable
          nf cannot be resolved to a variable
          p cannot be resolved to a variable
          ec cannot be resolved to a variable
          nbbr cannot be resolved to a variable
          p cannot be resolved to a variable
          ec cannot be resolved to a variable
          p cannot be resolved to a variable
          n cannot be resolved to a variable
          nf cannot be resolved to a variable

          at constructeur.buildContentPane(constructeur.java:92)
          at constructeur.build(constructeur.java:45)
          at constructeur.<init>(constructeur.java:32)
          at constructeur.main(constructeur.java:151)





          Voici mon programme complet:

          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 [i]constructeur[/i]
          
          		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) {
          		// TODO Auto-generated method stub
          
          		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);
          
          			}
          		}
               */
          	}
          }
          



          Aussi, les labels et les zones de textes sont placés successivement. Alors comment modifier le code pour que chaque label et sa zone de texte associée se trouvent dans une ligne à part ?

          Merci.

          • Partager sur Facebook
          • Partager sur Twitter
            26 mai 2011 à 9:15:18

            Tu mets a un endroit : setActionListener(new ActionListener(this));
            Ici j'imagine que tu veut que ta classe écoute ton bouton. Ce n'est pas comme ca qu'il faut procéder.
            Déjà, un actionListener est une interface, tu ne peux pas l'instancier comme un objet normal(cf. cours de java, api java, ...). C'est d'ailleurs ce que te dis le compilo.

            Bref si tu veux que ta classe écoute un bouton, alors elle doit implémenter ActionListener, une fois que ta classe implémente actionListener, tu pourra écrire :
            setActionListener(this);
            • Partager sur Facebook
            • Partager sur Twitter
              27 mai 2011 à 23:44:40

              Bonjour,

              J'ai remarqué que le problème est au niveau l'instruction suivante:

              bouton.addActionListener(new ActionListener(this));
              


              et au niveau la méthode "actionPerformed()" je ne sais pas que cette méthode est bien placé ou non car elle est placée dans la méthode "buildContentPane()"
              public void actionPerformed(ActionEvent ae)
              


              Citation

              Exception in thread "main" java.lang.Error: Unresolved compilation problems:
              Cannot instantiate the type ActionListener
              void is an invalid type for the variable actionPerformed
              Syntax error on token "(", ; expected
              Syntax error on token ")", ; expected

              at constructeur.buildContentPane(constructeur.java:94)
              at constructeur.build(constructeur.java:42)
              at constructeur.<init>(constructeur.java:33)
              at constructeur.main(constructeur.java:154)




              Concernant le positionnement des lables, des zones de textes et le bouton Je n'ai pas obtenu le positionnement voulu:

              Citation

              labelNd textFieldNd
              labelPr textFieldPr
              labelF textFieldF
              labelBr textFieldBr
              labelEc textFieldEc
              bouton



              SVP, pouvez vous mettre directement les modifications nécessaires dans mon dernier programme de cette manière je comprendrai mieux ?

              Voici mon programme:

              import java.awt.FlowLayout;
              import java.awt.event.ActionListener;
              import java.awt.event.ActionEvent;
              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 implements ActionListener{
              	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);
              		
              		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());
              		
              		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);
              
              		   			}
              		   		}
              		       }
              		}
              		
              		return panel;
              	}
              
              	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) {
              		// TODO Auto-generated method stub
              
              		constructeur fenetre = new constructeur();
              		fenetre.setVisible(true);// On la rend visible
              	}
              }
              



              Merci.
              • Partager sur Facebook
              • Partager sur Twitter
                29 mai 2011 à 13:55:16

                Bonjour,

                OK la compilation et l'exécution se passe bien.
                Mais le problème reste dans le positionnement des objets.

                Voici ce que j'obtiens comme interface:

                Citation

                labelNd textFieldNd labelPr textFieldPr
                labelF textFieldF labelBr
                textFieldBr labelEc textFieldEc bouton




                L'interface souhaitée est la suivante:

                Citation

                labelNd textFieldNd
                labelPr textFieldPr
                labelF textFieldF
                labelBr textFieldBr
                labelEc textFieldEc
                bouton



                J'ai lu la partie liée au layout managers dans le site suivant:
                http://download.oracle.com/javase/tuto [...] t/visual.html

                Mais, je n'ai pas compris.

                Pouvez vous me fournir le code nécessaire pour la création de l'interface souhaitée et m'indiquer où je vais mettre ce code ?

                Merci.
                • Partager sur Facebook
                • Partager sur Twitter

                traduire l'affichage en mode console vers une interface

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown