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

Agents de placement/Fenêtres Java Discussion :

JDialog et boolean


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 41
    Par défaut JDialog et boolean
    Salut je suis actuellement en train de créer un logiciel similaire a un annuaire avec une interface graphique mais j'ai un problème au niveau de l'ajout des clients car la ou je récupère les données quand l'utilisateur appuie sur la boite OK ne sont pas prise en compte car le logiciel ne passe pas dans la boucle pour récupérer les informations si quelqu'un peut m'aider svp je vous met les codes il y a la classe MaFenetre qui est la fenetre d'affichage des clients et qui propose les diverses fonctions ,la classe DialogueAdd qui va gérer l'ajout c'est un JDialog et la classe Infos qui va gérer les différentes informations:

    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.Container;
    import java.awt.Dimension;
    import java.awt.FlowLayout;
     
    import java.awt.Toolkit;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.IOException;
     
    import javax.swing.AbstractButton;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
     
     
    public class MaFenetre extends JFrame implements ActionListener{
     
    	public MaFenetre(){
    		Toolkit tk= Toolkit.getDefaultToolkit();
    		Dimension dim=tk.getScreenSize();
    		int hauteur=(int)dim.getHeight();
    		int largeur=(int)dim.getWidth();
    		setBounds(hauteur/4,largeur/4,largeur/2,hauteur/2);
    		Container contenu=getContentPane();
    		contenu.setLayout(new FlowLayout());
     
    		titre=new JLabel("Bienvenu dans l'application bibliothèque 1.0");
    		contenu.add(titre);
     
    		rech=new JButton("Recherche d'adhérent");
    		contenu.add(rech);
    		rech.addActionListener(this);
     
    		add=new JButton("Ajout d'adhérent");
    		contenu.add(add);
    		add.addActionListener(this);
     
    		sup=new JButton("Supprimer des adhérents");
    		contenu.add(sup);
    		sup.addActionListener(this);
     
    		mod=new JButton("Modification d'un adhérent");
    		contenu.add(mod);
    		mod.addActionListener(this);
     
     
    		menu=new JMenuBar();
    		setJMenuBar(menu);
     
    		base=new JMenu("File");
    		base.setMnemonic('F');
    		menu.add(base);
     
    		fonction=new JMenu("Fonction");
    		menu.add(fonction);
    		fonction.setMnemonic('o');
     
    		quitter=new JMenuItem("quitter");
    		base.add(quitter);
    		quitter.setMnemonic('q');
    		quitter.addActionListener(this);
     
    		sauver=new JMenuItem("sauver");
    		base.add(quitter);
    		sauver.setMnemonic('s');
    		sauver.addActionListener(this);
     
    		madd=new JMenuItem("ajout d'adhérent");
    		fonction.add(madd);
    		madd.setMnemonic('a');
    		madd.addActionListener(this);
     
    		msup=new JMenuItem("suppression d'adhérent");
    		fonction.add(msup);
    		msup.setMnemonic('s');
    		msup.addActionListener(this);
     
    		mrech=new JMenuItem("recherche d'adhérent");
    		fonction.add(mrech);
    		mrech.setMnemonic('r');
    		mrech.addActionListener(this);
     
    		mmod=new JMenuItem("modification de profil");
    		fonction.add(mmod);
    		mmod.setMnemonic('m');
    		mmod.addActionListener(this);
    	}
     
    	private JButton rech,add,sup,mod;
    	private DialogueRech lancerech;
    	private DialogueAdd lanceadd;
    	private DialogueSup lancesup;
    	private DialogueMod lancemod;
    	private JLabel titre;
    	private  Infos infos;
    	private JMenuBar menu;
    	private JMenu fonction,base;
    	private JMenuItem quitter,sauver,madd,msup,mrech,mmod;
     
    	public void actionPerformed(ActionEvent ev) {
    		Object source = (Object)ev.getSource();
     
    		if(source==rech)
    		{
    				lancerech=new DialogueRech(this);
    				lancerech.lancerdialogrech();
    		}	
    		if(source==add)
    		{
    			if(lanceadd==null)
    			{
    			lanceadd=new DialogueAdd(this);
    			infos=new Infos();
    			}
    			//infos.nom=lanceadd.getnom();
    			lanceadd=new DialogueAdd(this);
     
    				try {
    					lanceadd.lancerdialogadd(infos);
    				} catch (IOException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
     
    			//lanceadd.Textaddnp.setText(""+infos.nom);
     
    		}
    		if(source==sup)
     
    			{
    				lancesup=new DialogueSup(this);
    				lancesup.lancerdialogsup();
    			}
     
    		if(source==mod)
    		{
    			lancemod=new DialogueMod(this);
    			lancemod.lancerdialogmod();
    		}
    		if(source==quitter)
    		{
    			System.exit(0);
    		}
    		if(source==sauver)
    		{
     
    		}
    		if(source==madd)
    		{
    			lanceadd=new DialogueAdd(this);
    			try {
    				lanceadd.lancerdialogadd(infos);
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    		}
    		if(source==msup)
    		{
    			lancesup=new DialogueSup(this);
    			lancesup.lancerdialogsup();
    		}
    		if(source==mrech)
    		{
    			lancerech=new DialogueRech(this);
    			lancerech.lancerdialogrech();
    		}
    		if(source==mmod)
    		{
    			lancemod=new DialogueMod(this);
    			lancemod.lancerdialogmod();
    		}
    	}
    }
    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
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    import javax.swing.JButton;
    import javax.swing.JDialog;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JTextField;
     
    import java.awt.Container;
    import java.awt.FlowLayout;
    import java.io.IOException;
     
    public class DialogueAdd extends JDialog implements ActionListener{
     
     
     
    	public DialogueAdd(JFrame parent)
    	{
     
    		super(parent,"ajout d'adhérent");
    		Container contenu=getContentPane();
    		contenu.setLayout(new FlowLayout());
    		setBounds(420,420,420,100);
     
     
    		ok=new JButton("ok");
    		contenu.add(ok);
    		ok.addActionListener(this);
     
    		add=new JLabel("ajout d'adhérent");
    		contenu.add(add);
     
    		cancelButton=new JButton("Cancel");
    		contenu.add(cancelButton);
    		cancelButton.addActionListener(this);
     
    		nom=new JLabel("nom");
    		contenu.add(nom);
     
    		Textaddnp=new JTextField(5);
    		contenu.add(Textaddnp);
     
    		jaddresse=new JLabel("addresse");
    		contenu.add(jaddresse);
     
    		addresse=new JTextField(5);
    		contenu.add(addresse);
     
     
    		jtelephone=new JLabel("telephone");
    		contenu.add(jtelephone);
     
    		telephone=new JTextField(5);
    		contenu.add(telephone);
     
     
     
     
    	}
     
    	JTextField Textaddnp,addresse,telephone;
    	JButton ok,cancelButton;
    	JLabel add,nom,jaddresse,jtelephone;
    	boolean dok=false;
    	String flag;
     
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		// TODO Auto-generated method stub
    		if(e.getSource()==ok)
    		{
    			dok=true;
    			setVisible(false);
    			System.out.println(flag+dok);
    		}
     
    		if(e.getSource()==cancelButton)
    		{
    			setVisible(false);
    		}
    	}
    	public void lancerdialogadd(Infos infos) throws IOException
    	{
    		dok=false;
    		setVisible(true);
    		Textaddnp.setText(""+infos.nom);
    		if(dok)
    		{	
    			flag="passe";
    			infos.nom=Textaddnp.getText();
    			infos.adresse=addresse.getText();
    			infos.tel=telephone.getText();
    			infos.ajout(infos.nom,infos.adresse,infos.tel);	
    			//Textaddnp.setText(""+infos.nom);
    		}
    	}
    	public String getnom()
    	{
    		return Textaddnp.getText();
    	}
     
     
    }
    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
    import java.io.File;
    import java.io.IOException;
    import java.io.OutputStream;
     
     
    public class Infos {
     
    	public String [] client =new String [4];
    	public String recherche;
    	public String nom,adresse,tel;
    	public int largeur;
    	public static void ajout(String np,String addresse,String tel) throws IOException {
    		// TODO Auto-generated method stub
     
    		File objFich =new File(np+".dat");
    		objFich.createNewFile();
     
    	}
    	public void recherche(String text) {
     
    		//OutputStream sortie=new OutputStream();
     
     
    	}
    	public void sup(String text) {
    		// TODO Auto-generated method stub
     
    	}
     
    	public void modifier(String fiche)
    	{
     
    	}
     
     
    }

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 18
    Par défaut
    Tu appelles le constructeur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    super(parent,"ajout d'adhérent");
    Ceci crée une JDialog non modale. En conséquence, l'appel à setVisible(true) que tu fais dans ta méthode lancerdialogadd n'est pas bloquant et ta méthode continue son exécution (et donc dok est toujours false).

    Tu devrais donc plutôt appeler :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    super(parent,"ajout d'adhérent", true);

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 41
    Par défaut re
    En effet ça fonctionne mieux comme ça ,il fallait aussi enlever un setText().
    Par contre la j'ai un problème au niveau de la suppression il me dit pour ce bout de code:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if(source==sup)
     
    			{
    				if(lancesup==null)
    				{
    					lanceadd=new DialogueAdd(this);
    					infos=new Infos();
    				}
     
    				lancesup.lancerdialogsup(infos);
    			}
    bizarre vu que j'instancie bien info ...

    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at MaFenetre.actionPerformed(MaFenetre.java:157)
    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 Source)
    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)

  4. #4
    Membre émérite Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Par défaut
    Il n'y a pas de protection sur "lancesup". S'il est nul, tu appelles quand même la méthode lancerdialogsup().

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 41
    Par défaut
    omg non en fait j'ai tellement fais de copier coller des méthode qui se ressemblaient que j'ai pas fait attention et j'ai laisser lanceadd au lieu de mettre lancesup... merci quand même .

    arf maintenant le probleme réside dans l'accès des données TT il arrive pas a avoir accès au début dans l'affichage :

    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
    String Rep="C:\\Users\\matthew\\Desktop\\grey\\Bibliothèque";
     
    		File fil=new File(Rep);
    		File [] li=fil.listFiles();
    		DataInputStream [] entree=new DataInputStream [li.length];
     
    		JLabel [] client=new JLabel [li.length] ;
    		for(int i=0;i<li.length;i++)
    		{
    			if(li[i].isFile())
    			{
    				entree[i]=new DataInputStream(new FileInputStream(fil));
     
    				while(entree[i].readLine()!=null)
    				{
    					ligne=entree[i].readLine();
    					client[i]=new JLabel(ligne);
    					contenu.add(client[i]);
     
    				}
    			}	
    		}
    il met FileNotFound(accès refusé)

    au niveau de l'ajout je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    File objFich =new File(np+".dat");
    			objFich.createNewFile();
     
    			PrintWriter sortie=new PrintWriter(new BufferedWriter(new FileWriter(objFich)));
    			sortie.print(np+"habite"+addresse+"son numero de téléphone"+tel);

    afin que ca ressort en txt mais ca ressort pas en txt ,ca donne un .dat pour créer mon fichier je commente l'affichage de la première fenetre sinon je pourrais pas tester.Je pense que c'est un problème au niveau des classes d'accès aux fichiers DataInputStream mais au début j'ai fais un BufferedReader avec un FileReader et j'utilisais la méthode readLine mais j'avais l'erreur cité , donc la je suis passé en DataOutputStream mais la fonction readLine() est "deprected"...



    J'ai remodifié mon code au niveau de l'ajout j'ai chosit de passer en dat au lieu de txt ca écrit bien mais le problème reste au niveau de la lecture j'ai toujours le même problème :s

    Exception in thread "main" java.io.FileNotFoundException: C:\Users\matthew\Desktop\grey\Bibliothèque (Accès refusé)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(Unknown Source)
    at MaFenetre.<init>(MaFenetre.java:112)
    at Api.main(Api.java:8)

    Api c'est ma classe qui appelle ma fenetre et le MaFenetre <init>112 c'est entree[i]=new DataInputStream(new FileInputStream(fil));
    Mais normalement j'ai tout les droits sur le fichier je pense à moins que je dois les modifier en utilisant la classe File ?

    j'utilise ce bout de code pour lire j'ai aussi modifié en read UTF ;
    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
    String Rep="C:\\Users\\matthew\\Desktop\\grey\\Bibliothèque";
     
    		File fil=new File(Rep);
    		File [] li=fil.listFiles();
    		DataInputStream [] entree=new DataInputStream [li.length];
     
    		JLabel [] client=new JLabel [li.length] ;
    		for(int i=0;i<li.length;i++)
    		{
    			if(li[i].isFile())
    			{
    				entree[i]=new DataInputStream(new FileInputStream(fil));
     
    				while(entree[i].readUTF()!=null)
    				{
    					ligne=entree[i].readUTF();
    					client[i]=new JLabel(ligne);
    					contenu.add(client[i]);
     
    				}
    			}	
    		}
    et j'utilise ca pour écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	public static void ajout(String np,String addresse,String tel) throws IOException {
    			// TODO Auto-generated method stub
    			File objFich =new File(np+".dat");
    			objFich.createNewFile();
    			//PrintWriter sortie=new PrintWriter(new BufferedWriter(new FileWriter(objFich)));
    			DataOutputStream sortie=new DataOutputStream(new FileOutputStream(objFich));
    			sortie.writeUTF(np+"habite"+addresse+"son numero de téléphone"+tel);

Discussions similaires

  1. [debutant] JDialog non modal
    Par andresan dans le forum Agents de placement/Fenêtres
    Réponses: 10
    Dernier message: 12/05/2004, 13h40
  2. [conversion][boolean]
    Par nenoeil dans le forum Langage
    Réponses: 10
    Dernier message: 12/05/2004, 11h19
  3. [JDialog] JDialog ou JFrame ?
    Par Mister Nono dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 25/04/2004, 21h55
  4. [JDialog] Modification dans une fenêtre
    Par cefabien dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 01/10/2003, 13h18
  5. Récuperer les icons des JDialog
    Par Pro_Fete dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 17/04/2003, 13h00

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