IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Java Discussion :

Interface sous Eclipse


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2009
    Messages
    392
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 392
    Par défaut Interface sous Eclipse
    Bonjour,

    J’ai un 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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    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écupérer la valeur saisie dans la variable "n"
    - la profondeur : on va récupérer 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:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    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.

  2. #2
    Membre éclairé
    Homme Profil pro
    NoOb
    Inscrit en
    Mai 2007
    Messages
    554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : NoOb

    Informations forums :
    Inscription : Mai 2007
    Messages : 554
    Par défaut
    Bonjour,

    Commence par créer une fenêtre:

    Visual editor la crée comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    public class TaClasse extends JFrame {
     
            private JPanel jContentPane = null;
     
    	public TaClasse () {
    		super();
     
    		initialize();
    	}
     
            /**
             * This method initializes this
             * 
             */
    	private void initialize() {
    		this.setTitle("Titre");
     
    		this.setContentPane(getJContentPane());
     
    		this.addWindowListener(new WindowAdapter() {
    			public void windowClosing(WindowEvent e) {
    				System.exit(0);
    			}
    		});
    	}
     
    	/**
             * This method initializes jPanel       
             *      
             * @return javax.swing.JPanel   
             */
    	private JPanel getJContentPane() {
    		if (jContentPane == null) {
    			jContentPane = new JPanel();
     
                            // renseigne toi sur les layouts
    			jContentPane.setLayout(TonLayout);
     
                            // et donc t'ajoute tes labels et boutons
    			jContentPane.add(...);
    		}
    		return jContentPane;
    	}
    }
    Après tes boutons ont un ActionListener qui écoute le click et qui exécute un code quand tu cliques dessus.

    Hésites pas à lire et essayer des tutos d'interface graphique en java (les Layout, les JFrame, les écouteurs...).
    Comme par exemple: http://baptiste-wicht.developpez.com...wing/debutant/

  3. #3
    Membre chevronné Avatar de javaNavCha
    Homme Profil pro
    EKG Group
    Inscrit en
    Juillet 2009
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : EKG Group
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2009
    Messages : 311
    Par défaut
    Citation Envoyé par Génoce Voir le message
    Bonjour,

    Commence par créer une fenêtre:

    Visual editor la crée comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    public class TaClasse extends JFrame {
     
            private JPanel jContentPane = null;
     
    	public TaClasse () {
    		super();
     
    		initialize();
    	}
     
            /**
             * This method initializes this
             * 
             */
    	private void initialize() {
    		this.setTitle("Titre");
     
    		this.setContentPane(getJContentPane());
     
    		this.addWindowListener(new WindowAdapter() {
    			public void windowClosing(WindowEvent e) {
    				System.exit(0);
    			}
    		});
    	}
     
    	/**
             * This method initializes jPanel       
             *      
             * @return javax.swing.JPanel   
             */
    	private JPanel getJContentPane() {
    		if (jContentPane == null) {
    			jContentPane = new JPanel();
     
                            // renseigne toi sur les layouts
    			jContentPane.setLayout(TonLayout);
     
                            // et donc t'ajoute tes labels et boutons
    			jContentPane.add(...);
    		}
    		return jContentPane;
    	}
    }
    Après tes boutons ont un ActionListener qui écoute le click et qui exécute un code quand tu cliques dessus.

    Hésites pas à lire et essayer des tutos d'interface graphique en java (les Layout, les JFrame, les écouteurs...).
    Comme par exemple: http://baptiste-wicht.developpez.com...wing/debutant/
    Salut
    Mais sous eclipse il y a ce Visual editor ??

  4. #4
    Membre éclairé
    Homme Profil pro
    NoOb
    Inscrit en
    Mai 2007
    Messages
    554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : NoOb

    Informations forums :
    Inscription : Mai 2007
    Messages : 554
    Par défaut
    Citation Envoyé par javaNavCha Voir le message
    Salut
    Mais sous eclipse il y a ce Visual editor ??
    Oui, mais pas sur les nouvelles version d'Eclipse, donc non .
    C'est bien dommage d'ailleurs!

  5. #5
    Membre chevronné Avatar de javaNavCha
    Homme Profil pro
    EKG Group
    Inscrit en
    Juillet 2009
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : EKG Group
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2009
    Messages : 311
    Par défaut
    Citation Envoyé par Génoce Voir le message
    Oui, mais pas sur les nouvelles version d'Eclipse, donc non .
    C'est bien dommage d'ailleurs!
    J'ai travaillé sous les versions 3.1 jusqu'à 3.6
    et j'ai pas trouvé cet Editor
    Par contre je vois pas l’internet de l'éliminer surtout que le NetBeans l'utilise.

  6. #6
    Membre éclairé
    Homme Profil pro
    NoOb
    Inscrit en
    Mai 2007
    Messages
    554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : NoOb

    Informations forums :
    Inscription : Mai 2007
    Messages : 554
    Par défaut
    J'ai pas trop suivi, mais je crois que VE n'est plus 'compatible' avec Eclipse depuis la 3.4 si je dit pas de bêtises.

    Je sais pas si ils ont abandonné le projet ou autre...

    Depuis je développe en GWT et il y a WindowBuilder editor et les ui.xml.

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Février 2008
    Messages : 64
    Par défaut
    pour les déclaration il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private static  JTextField textFieldNd;
    private static JTextField textFieldPr;
    private static JTextField textFieldF;
    private static JTextField textFieldBr;
    private static JTextField textFieldEc;
    ensuite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    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());

  8. #8
    Membre éclairé
    Inscrit en
    Mai 2009
    Messages
    392
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 392
    Par défaut
    Merci "bingo06260" r

    Mais les labels et les zones de textes sont placés successivement.

    - Comment modifier le code pour que chaque label et sa zone de texte associée se trouvent dans une ligne à part ?

    - Quels sont les modifications à faire pour on exécute une partie du code comme j'ai indiqué dans mon précédent message lorsque on clique sur le bouton "Créer" ?

  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Février 2008
    Messages : 64
    Par défaut
    Voilà ce dont tu as besoin
    http://jmdoudoux.developpez.com/cour...a/chap-awt.php

    Pour le bouton... fait un peu de recherche sur ActionListener
    voici un lien
    http://java.developpez.com/faq/gui/?...wing_listeners

  10. #10
    Membre éclairé
    Inscrit en
    Mai 2009
    Messages
    392
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 392
    Par défaut
    Bonjour,
    J'ai mis les nouvelles modifications mais j'ai des erreurs de compilation suivantes:

    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:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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);
                }
            }
            */
        }
    }
    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.

  11. #11
    Membre éclairé
    Inscrit en
    Mai 2009
    Messages
    392
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 392
    Par défaut
    Bonjour,

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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()"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void actionPerformed(ActionEvent ae)
    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:

    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:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    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.

  12. #12
    Membre éclairé
    Inscrit en
    Mai 2009
    Messages
    392
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 392
    Par défaut
    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:

    labelNd textFieldNd labelPr textFieldPr
    labelF textFieldF labelBr
    textFieldBr labelEc textFieldEc bouton

    L'interface souhaitée est la suivante:

    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/tu...ut/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.

  13. #13
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Par défaut
    Bonjour,

    Concernant VEP (Visual Editor Project) effectivement il faut l'oublier avec les versions récentes d'Eclipse.

    Cf. http://eclipse.developpez.com/faq/?p...gins#guiPlugin

    Window Builder, que Google a donné à Eclipse, est ce vers quoi vous pouvez vous orienter avantageusement.
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

Discussions similaires

  1. [Debutant]Transférer une interface sous netbeans dans eclipse
    Par smillingbandit dans le forum NetBeans
    Réponses: 3
    Dernier message: 28/01/2008, 09h03
  2. Interface graphique sous Eclipse
    Par sarapis dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 13/11/2007, 11h53
  3. Designer pour les interfaces graphiques sous eclipse
    Par anas.eh dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 15/10/2007, 10h30
  4. interface graphique avec Visual Editor sous Eclipse
    Par bino dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 08/06/2007, 13h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo