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 :

Mal compris ? (frame/dialog)


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut Mal compris ? (frame/dialog)
    Bonjour,
    en phase d'apprentisage de JAVA
    je teste un tout petit code java, mais je crois que j'ai mal compris le fonctionnement de frame et dialog

    je n'arrive pas à m'en sortir.

    L'idée est simple :
    -->interface YES/NO
    ---> YES ---> quitter
    ---> No ---> dialogbox ---> indique juste qu'on a appuyer sur no et retour

    voilà ce que j'ai fait :
    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
    import java.awt.BorderLayout;
    import java.awt.Button;
    import java.awt.Dialog;
    import java.awt.Dimension;
    import java.awt.FlowLayout;
    import java.awt.Frame;
    import java.awt.Label;
    import java.awt.Panel;
    import java.awt.Window;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import javax.swing.JButton;
    import javax.swing.JComponent;
    import javax.swing.JDialog;
    import javax.swing.JLabel;
    /*
     * imports des éléments java
     */
     
     
     
     
    public class testframedialog {
    	public class  testframedialog  extends Frame {
    	/*
    	 * juste pour tester mais semble necessaire d'appliquer un numéro de
    	 * version
    	 */
    	  private static final long serialVersionUID = 1L;
              testframedialg() {
    		  super("AWT");
    		  Label msgLabel = new Label("Quit?");
    		  Button yesButton = new Button("Yes");
    		  Button noButton = new Button("No");
    		  Panel buttonbox = new Panel();
    		  buttonbox.setLayout(new FlowLayout());
    		  buttonbox.add(yesButton);
    		  buttonbox.add(noButton);
    		  /*
    			 * pannel des boutons YES/NO
    			 */
    		  final Panel msgbox = new Panel();
    		  msgbox.setLayout(new FlowLayout());
    		  msgbox.add(msgLabel); 
    		  /*
    			 * affiche le "quit ?"
    			 */
    		  add(msgbox, BorderLayout.NORTH);
    		  add(buttonbox, BorderLayout.SOUTH);
    		  /*
    			 * gerer la disposition des labels
    			 */
    		  yesButton.addActionListener(new ActionListener() {
    				public void actionPerformed(ActionEvent e) {
    					System.exit(0);
    					/*
    					 * juste pour quitter proprement avec un exit 0
    					 */
    				}
    		  });
    		  noButton.addActionListener(new ActionListener() {
    					public void actionPerformed(ActionEvent e) {
    							Dialog frame = null;
    							final JDialog dialog = new JDialog(frame,"test");
    							JLabel label = new JLabel("<html><p align=center>TEST<br>");
    							label.setHorizontalAlignment(JLabel.CENTER);
    							JButton closeButton = new JButton("Close");
    							closeButton.addActionListener(new ActionListener() {
    									public void actionPerformed(ActionEvent e) {
    											dialog.setVisible(false);
    											dialog.dispose();
    											/*
    											 * libere la dialog-box
    											 */
    									}
    							});
    						    /*
    							 * ajoute une deuxieme boite de dialog pour retour
    							 */
    						    dialog.setSize(new Dimension(300, 150));
    						    dialog.setLocationRelativeTo(frame);
    						    dialog.setVisible(true);
    					}
    		  });
    		    /*
    			 * faire agir le bouton "no"
    			 */
    		  addWindowListener(new WindowAdapter() {
    					public void windowClosing(WindowEvent e) {
    							System.exit(0);
    					}
    		  });
    		    /*
    			 * juste pour gerer la cloture de la fenetre par la croix de
    			 * l'interface graphique utilisateur
    			 */
        	}
        }
    }
     
     
     
    /*
     * corp de programme commence ici construit et affice la frame ci dessus
     */
    public void main(String[] args) {
    	 testframedialog frame = new testframedialog();
    	 frame.pack();
    	 frame.setVisible(true);
    }
    et la compilation javac :
    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
     
    test_frame$ javac testframedialog.java
    testframedialog.java:32: invalid method declaration; return type required
              testframedialg() {
              ^
    testframedialog.java:99: illegal start of type
        	});
        	 ^
    testframedialog.java:109: class, interface, or enum expected
    public void main(String[] args) {
           ^
    testframedialog.java:111: class, interface, or enum expected
    	 frame.pack();
    	 ^
    testframedialog.java:112: class, interface, or enum expected
    	 frame.setVisible(true);
    	 ^
    testframedialog.java:113: class, interface, or enum expected
    }
    ^
    6 errors
    dans un premier j'ai pensé à une erreur d'indentation (par fermeture confondue entre un "}" et un "});" par exemple

    Mais visiblement cela n'a rien à voir...

    Merci pour votre aide, je n'ai pas trouvé mon bonheur sur les tutos...

    Pour info :
    je suis sous linux avec eclipse et les jdk sun

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    le constructeur d'une classe doit porter le même nom que la classe. Comme ce n'est pas le cas ici, le compilateur prend ca pour une méthode et donc rale qu'il n'y a pas de type de retour déclaré.

    Solution: rajoute le 'o' manquant dans le nom de ton constructeur.

    le main doit etre statique *et* inclu dans la classe

    Solution: fait remonter ton main avant l'accolade fermante de la classe et ajoute le mot clé static

    PS:
    préfère l'utilisation de swing à awt plus léger et plus beau
    les noms de classes devoient, par convention, toujours commencer par une majuscule

  3. #3
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    Merci, extra-rapide

    donc j'ai suivi l'ensemble des conseils ...
    il reste des problèmes mais je vais d'abord tanter de m'en sortir seul, si je trouve pas je repasse embetter tout le monde avec mes questions.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. strtoul mal compris...
    Par SPACHFR dans le forum Débuter
    Réponses: 5
    Dernier message: 31/05/2007, 16h33
  2. [MySQL] Classe database + connexion multiple + principe mal compris
    Par Rodrigue dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 14/08/2006, 14h06
  3. [C++]Code mal compris
    Par fafa139 dans le forum MFC
    Réponses: 5
    Dernier message: 11/05/2006, 13h51
  4. [C++]Code mal compris
    Par fafa139 dans le forum C++
    Réponses: 5
    Dernier message: 11/05/2006, 13h51

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