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

AWT/Swing Java Discussion :

Je ne comprend pas tt à l'interface


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 5
    Par défaut Je ne comprend pas tt à l'interface
    Bonjour,

    J'ai commencé le Java cette semaine en autoformation (donc ce n'est pas fabuleux !) et le code suivant passe la compilation, mais à l'execution, c'est le drame !

    Ps: le problème vient de l'interface... Merci par avance.

    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
     
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.text.*;
     
    public class Prog1 extends JFrame{
    	JPanel Panneau;
    	JLabel Eti1;
    	JComboBox Combo;
    	JLabel Eti2;
    	JTextField Text1;
    	JButton Bouton;
    	JLabel Eti3;
     
    public Prog1() {
    	JPanel Panneau = new JPanel();
    	FlowLayout Disposition = new FlowLayout();
    	Panneau.setLayout(Disposition);
     
    	JLabel Eti1 =new JLabel("Résidence"); 
    	Panneau.add(Eti1);
     
    	String[] batiment = new String[]{"A","B"} ;
    	JComboBox Combo = new JComboBox(batiment);
    	Panneau.add(Combo);
     
    	JLabel Eti2 =new JLabel("Chambre"); 
    	Panneau.add(Eti2);
     
    	JTextField Text1 = new JTextField(3);
    	Panneau.add(Text1);
     
    	JButton Bouton =new JButton("Associer");
    	Bouton.addActionListener(new Traitement());
    	Panneau.add(Bouton);
     
    	JLabel Eti3 =new JLabel("0* ** **");
    	Panneau.add(Eti3);
     
    	JFrame f = new JFrame("Prog1");
    	f.setSize(250,110);
     
    	f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    	Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
    	f.setLocation(dim.width/2 - f.getWidth()/2, dim.height/2 - f.getHeight()/2);
     
    	f.setVisible(true);
    	f.setResizable(false);
     
    	f.setContentPane(Panneau);
    }
     
    public static void main(String[] args) {
    	Prog1 Annuaire = new Prog1();
    }
     
    public class Traitement implements ActionListener {
    	public void actionPerformed(ActionEvent e) {
     
    	String num="";
    	String numb="";
    	num = Text1.getText();
    	Object bat = Combo.getSelectedItem();
    	int i = Integer.parseInt(num);
    	int su=0;
    	if (bat.equals("A")) {
    	su = 999+43*((i/100)-1)+(i-100*(i/100));
    	}
    	else if (bat.equals("B")) {
    	su = 999+43*((i/100)+4)+(i-100*(i/100));  }
    	int ind = *****0000;
    	int tel = su + ind;
    	String tel2 = String.valueOf(tel);
    	tel2 = "0"+tel2;
    	int compte;
    	for (compte=0 ; compte <10; compte++ ) {
    	numb=numb+tel2.charAt(compte);
    	if (compte%2==1) {numb=numb+" ";
    	Eti3.setText(numb);
    	}
    	}
    }
    }
    }

  2. #2
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 111
    Par défaut
    peux tu nous dire exactement le probleme.

    sinon je peux deja corriger quelque petite chose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    f.setResizable(false);
    f.setContentPane(Panneau);
    f.setVisible(true);
    prends l'ahbitude de mettre le setVisible a la fin, ca evitera des repaint, revalidate etc... .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    si tu mets DISPOSE_ON_CLOSE ca ne ferme pas le logiciel juste la fenetre, mets plutot un EXIT_ON_CLOSE, sinon tu auras plein de processus en meme temps.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
    	f.setLocation(dim.width/2 - f.getWidth()/2, dim.height/2 - f.getHeight()/2);
    tu peux le faire plus simplement en faisant un :
    f.setLocationRelativeTo(null);
    ca te placera la fenetre au milieu de l'ecran.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class Traitement implements ActionListener { ...
    quand tu fais de veritable classe pour traiter les actions, mets les plutot a l'exterieur de la classe principale.

    ou sinon tu peux faire des classes anonymes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Bouton.addActionListener( new ActionListener(){
     
    public void actionPerformed(ActionEvent a){
    ...
    }
    }
     
    );

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 5
    Par défaut
    Merci pour tous ces bons conseils.

    Lors de l'execution, voilà un extrait de ce qui est écrit dans la console :

    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at prog1$Traitement.actionPerformed(Prog1.java:58)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Sour
    ce)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)"

    Bref, je suis un peu pécismiste...

    Le programme calcule le numéro de téléphone de personne à partir de leur batiment de résidence (ComboBox) et de leur numéro de chambre. L'algo est bon, mais il y a un problème (sérieux) dans l'interface...

    @+ Brian

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Citation Envoyé par eclesia
    peux tu nous dire exactement le probleme.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    si tu mets DISPOSE_ON_CLOSE ca ne ferme pas le logiciel juste la fenetre, mets plutot un EXIT_ON_CLOSE, sinon tu auras plein de processus en meme temps.
    Ou pas...
    En général mieux vaut préférer un DISPOSE à un EXIT (qui revient à appeler System.exit), le programme se finira de toute façon, et de manière beaucoup plus propre (par exemple s'il a des action à réaliser en plus de l'affichage de l'interface). (cf les posts de gens demandant pourquoi telle ou telle actionn'est pas exécutée quand je ferme am fenêtre)

    De même en général la JFrame ne doit pas controler le programme, c'est plutôt le rôle d'une classe "supérieure" alias controlleur qui peut déclencher d'autres actions en parallèle du GUI ou des tratements consécutifs à la disparition de la JFrame.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 5
    Par défaut
    Oui, mais ca ne répond pas à ma question initiale : Quelle est la source de toutes ces erreurs....

    @+ Brian

  6. #6
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Tu as une erreur de typre NullPointerException à la ligne 58.
    Ca correspond à quelle ligne? C'est surement un objet que tu utilise qui n'a pas été créé.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 5
    Par défaut
    Cela corespond à l'une de ces 2 lignes de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    num = Text1.getText();
    Object bat = Combo.getSelectedItem();
    Merci de votre aide

Discussions similaires

  1. Je comprend pas mon interface :/
    Par berceker united dans le forum Langage
    Réponses: 6
    Dernier message: 31/07/2006, 21h39
  2. [thread][methodologie]Quelque chose que je ne comprends pas!
    Par norkius dans le forum Général Java
    Réponses: 5
    Dernier message: 16/03/2005, 14h01
  3. sql ne comprend pas mon where!et me demande des parametres
    Par marie10 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 20/04/2004, 11h08
  4. [Rave] un message que je ne comprends pas
    Par Clotilde dans le forum Rave
    Réponses: 2
    Dernier message: 30/09/2003, 21h46

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