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 :

Probleme JFrame java


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 40
    Par défaut Probleme JFrame java
    Bonjour,

    J'ai un problème avec mes JFrame.

    J'essaye d'expliquer simplement.
    J'ai une JFrame principale fp avec des boutons. Chaque boutons ouvre une nouvelle JFrame fs.

    Prenons un des exemples : dans ma fs, j'ai une JTable avec un affichage de factures. je clique sur une facture puis sur le bouton "modifier". Une nouvelle JFrame s'ouvre avec les données de la facture sélectionné. Je modifie, valide (ce qui modifie en base et ferme la JFrame avec dispose()) et la ça marche bien le tableau est bien actualisé pas de problème.

    Je recommence avec une autre aucun problème "visuel" mais vision"developpeur" j'ai un probleme en effet ma requette en BDD s'execute 2 fois comme si 2 Jframe étaient ouverte...

    Si je remodifie une facture pour la 3eme fois, même probleme mais 3 fois, le programme essaye d'inserer 3 fois en base...

    CA M'ENERVE je comprend pas pourquoi parce je ferme bien ma fenetre...

    Aidez moi

  2. #2
    Membre très actif
    Avatar de william44290
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2009
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 400
    Par défaut
    Bonjour cela ressemble à des objects non libérés et toujours actifs.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 40
    Par défaut
    merci pour ta reponse.
    oui c'est ce que je pense mais comment je peux les liberer ? ou les rendre inactif car dispose() ne le fait pas dapres moi....

  4. #4
    Membre très actif
    Avatar de william44290
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2009
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 400
    Par défaut
    Perso lors de la fermeture de la fenêtre je libère toutes les références des objets que j'ai utilisé (et ce en cascade) Exemple :

    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
    package wMain;
    import java.awt.BorderLayout;
    import java.awt.event.WindowEvent;
    import java.awt.event.WindowListener;
    import java.util.ArrayList;
     
    import javax.swing.JFrame;
    import javax.swing.JPanel;
     
    import wComposant.JPanelImage;
    import wComposant.JPopup;
    import wComposant.JScrollPaneAuto;
    import wComposant.JStatusBar;
    import wFeedback.JDialogFeedBack;
    import wOutils.Gp;
    import wOutils.Sql;
     
    public class MainFrame extends JFrame implements WindowListener  {
    	private static final long serialVersionUID = 1L;
    	public Gp gpAbc = null;
    	JPanel jpFrame = null;
    	JPanelImage jpCenter = null;
    	JStatusBar jstatusbar = null;
    	JScrollPaneAuto jscrollpane=null;
    	public ArrayList< JPopup > jpopup=null;
     
    	public MainFrame(Gp gpAbc) {
    		this.gpAbc = gpAbc;
    		gpAbc.gp.f_mf =gpAbc.f_mf = this;
    		if (Gp.isFileExists(Gp.DEVFILE)){
    			gpAbc.ISDEVFILE=true;
    		} else {
    			Gp.setConsoleErr(true);
    			Gp.setConsoleDebug(true);			
    		}
    		adapte();
    		gpAbc.connectUser();
    	}
     
    	public void adapte() {
    		gpAbc.setPreferencesAppli(gpAbc.m_user);
    		jpFrame = new JPanel(new BorderLayout(5,0));{
    			jpFrame.setFocusable(false);
    			jpCenter = new JPanelImage();{
    				gpAbc.gp.f_mjpc =gpAbc.f_mjpc = this.jpCenter;
    				gpAbc.setFrameTexture();
    				jpFrame.add(jpCenter, BorderLayout.CENTER);
    			}
    			jstatusbar = new JStatusBar();{
    				gpAbc.gp.f_mjStatusBar=gpAbc.f_mjStatusBar=jstatusbar;
    				jpFrame.add(jstatusbar, BorderLayout.SOUTH);
    			}
    		}
    		jscrollpane=new JScrollPaneAuto(jpFrame);
     
    		// Set de la fenetre
    		this.gpAbc.setIcon(this);
    		this.gpAbc.setMainTitle();
    		this.setSize(this.gpAbc.f_mfWidth, this.gpAbc.f_mfHeight);
    		if (gpAbc.ISDEVFILE){
    			this.setLocation(200,0);
    		} else {
    			this.setLocationRelativeTo(null);
    		}
    		this.setContentPane(jscrollpane);
    		this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
    		this.addWindowListener(this);
    		setVisible(true);
    	}
    	public void windowActivated(WindowEvent e) {}
    	public void windowClosed(WindowEvent e) {}
    	public void windowDeactivated(WindowEvent e) {}
    	public void windowDeiconified(WindowEvent e) {}
    	public void windowIconified(WindowEvent e) {}
    	public void windowOpened(WindowEvent e) {}
    	public void windowClosing(WindowEvent e) {
    		if (gpAbc.getMS1204()!=null){
    			gpAbc.closeMS1204();
    		}
    		if (!gpAbc.ISDEVFILE){
    			gpAbc.clearMainFrame(true);
    			gpAbc.clearContainer(this.getContentPane(),true);
    			gpAbc.zoomIn(this,6);
    			setVisible(false);
    			if (gpAbc.appliParam.VERSIONEVAL ){
    				gpAbc.m_menu="Votre avis nous intéresse";
    				gpAbc.m_optionText="Merci d'évaluer ce logiciel";
    				new JDialogFeedBack(this,new Sql(gpAbc.sqlAbc));
    			}
    		}
    		System.exit(0);
    	}
     
    }
    class gpAbc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	public void closeMS1204() {
    		if (ms1204!=null){
    			ms1204.stopWaitCodeCb();
    			ms1204.setCbOff(false);
    			ms1204.close();
    		}
    		ms1204=null;
    	}
    class ms1204
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	public void close(){
    		serial.close();
    	}
    class serial
    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
    	public void close(){
    		if (open){
    			try {
    				if (out!=null){
    					out.close();
    				}
    				if (in!=null){
    					in.close();
    				}
    			} catch (IOException arg0) { arg0.printStackTrace(); }
    			serialPort.removeEventListener();
    			serialPort.close();
    			open=false;
    		}
    	}

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 40
    Par défaut
    a ouais c'est pas simple... je test et je te redis merci en tout cas

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 40
    Par défaut
    j'ai un probleme... touttes les methodes que tu appelle sont des methodes que tu as créer ? au final sur une frame tu appliques quoi ?

    J'ai essayé ca moi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    fc.removeAll();
    fc.remove(fc.getContentPane());
    fc.dispose();
    fc = null;
    System.gc();
    Ca ne marche toujours pas.

  7. #7
    Membre très actif
    Avatar de william44290
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2009
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 400
    Par défaut
    Le problème ne se situe pas au niveau de la frame mais par rapport aux objects que tu as créé.

    Cela peut venir d'un référence à un object contenu quelque part, ce qui empèche le GC de faire son boulot.
    Cela peut venir d'un static.
    Cela peut venir d'un ArrayList
    etc ...

    Bref, c'est à première vu un problème de conception.

    IL faudrait voir un peu de ton code pour tenter d'analyser ce qui ne convient pas.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 40
    Par défaut
    Je te situe. Tu es dans une JFrame qui affiche les facture grace a une Jtable.
    Voila le code qui se lance quand tu clique sur le bouton ajouter facture.
    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
     
     
    public class AjouterFacture implements ActionListener {
    	private JFrame fs;
    	private JFrame fc;
    	private JTable jTable1;
    	List<Facture> tableauFactures;
    	private JTextField numFact = new JTextField(12);
    	private JTextField prixFact = new JTextField(6);
    	private Choice c;
    	private JLabel lfact = new JLabel("Numéro de la facture : ");
    	private JLabel lclient = new JLabel("Nom du client : ");
    	private JLabel lprixTTC = new JLabel("Prix de la prestation : ");
    	private JButton valider = new JButton("Valider",new ImageIcon("images/valider.png"));
    	private JButton annuler = new JButton("Annuler",new ImageIcon("images/annuler.gif"));
    	static Dimension tailleEcran = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
    	static final int DEFAULT_WIDTH = (int)tailleEcran.getWidth();
    	static final int DEFAULT_HEIGHT = (int)tailleEcran.getHeight();
     
    	AjouterFacture(List<Facture> tableauFactures, JTable jTable1, JFrame fs,JFrame fc){
    		this.jTable1=jTable1;
    		this.fs=fs;
    		this.tableauFactures=tableauFactures;
    		this.fc=fc;
    		}
     
     
    	public void actionPerformed(ActionEvent e)
        {
    		fc= new JFrame();
            fs.setEnabled(false);		
    		fc.setTitle("Création d'une facture");
    	    fc.setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
    	    fc.setResizable(false);
    	    fc.setLayout(null);
     
    	    //Where the GUI is created:
    		    JMenuBar menuBar;
    		    JMenu menu;
    		    JMenuItem menuItem;
     
    		    //Create the menu bar.
    		    menuBar = new JMenuBar();
     
    		    //Build the first menu.
    		    menu = new JMenu("Fichier");
    		    menuBar.add(menu);
     
    		    //a group of JMenuItems
    		    menuItem = new JMenuItem("quitter");
    		    menuItem.addActionListener(new QuitterListenerFenetreSecondaire(fs,fc));
    		    menu.add(menuItem);
     
    		    menuItem = new JMenuItem("Description");
    		    menuItem.addActionListener(new DescriptionListener(fs));
    		    menu.add(menuItem);
     
    		    //Build second menu in the menu bar.
    		    menu = new JMenu("Edition");
    		    menuBar.add(menu);
     
    		    fc.setJMenuBar(menuBar);
     
    		    fc.addWindowListener (new WindowAdapter(){
    				public void windowClosing (WindowEvent e){
    					fs.setEnabled(true);
    					fc.dispose();
    				}
    			});	
     
    		c = Client.remplirListeDeroulante();
    		c.setBounds(150,200,150,25);    
    		lfact.setBounds(0,150,150,25);
    	    numFact.setBounds(150,150,150,25);
    		lclient.setBounds(0,200,150,25);
    		lprixTTC.setBounds(0,250,150,25);
    		prixFact.setBounds(150,250,150,25);
    		valider.setBounds(470,900,120,30);
    		annuler.setBounds(590,900,120,30);
    		fc.add(valider);
    		fc.add(c);
    	    fc.add(numFact);
    	    fc.add(lfact);
    	    fc.add(lprixTTC);
    	    fc.add(lclient);
    	    fc.add(prixFact);
    	    fc.add(annuler);
    	    tableauFactures=Facture.getTableauFactures();
    	    valider.addActionListener(new validerAjoutFacture(tableauFactures,c,prixFact,numFact,jTable1,fs,fc));
    	    annuler.addActionListener(new QuitterListenerFenetreSecondaire(fs,fc));
    	    fc.setVisible(true);
        }
    }
    Puis celui qui s'execute quand tu clique sur valider
    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
     
    public class validerAjoutFacture implements ActionListener {
    Choice nom;
    JTextField numeroDevis;
    JTextField numero;
    JTable jTable1;
    Facture f;
    JFrame fs;
    JFrame fc;
    List<Facture> tableauFactures;
    static Dimension tailleEcran = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
    static final int DEFAULT_WIDTH = (int)tailleEcran.getWidth();
    static final int DEFAULT_HEIGHT = (int)tailleEcran.getHeight();
     
    	public validerAjoutFacture(List<Facture> tableauFactures, Choice nom, JTextField numeroDevis, JTextField numero, JTable jTable1, JFrame fs, JFrame fc){
    		this.nom=nom;
    		this.tableauFactures=tableauFactures;
    		this.numero=numero;
    		this.numeroDevis=numeroDevis;
    		this.jTable1=jTable1;
    		this.fs=fs;
    		this.fc=fc;
    	}
    	public void actionPerformed(ActionEvent arg0) {//probleme ici lors de la creation d'une 2eme facture
    		try{
    			int numD;
    			if (numeroDevis.getText().equals(""))
    			numD = 0;
    			else numD = (Integer.parseInt(numeroDevis.getText()));
    			f = new Facture(Integer.parseInt(numero.getText()),numD , nom.getSelectedItem());
    			f.sauvegarder(f);
    			tableauFactures=Facture.getTableauFactures();
    			System.out.println(tableauFactures.size());
    			FiltreTriModel sorter = new FiltreTriModel(new MyTableModel(tableauFactures));
    			jTable1.setModel(sorter);
    		    sorter.addEcouteur(jTable1);
    		    jTable1.createDefaultColumnsFromModel();
    			jTable1.getModel().addTableModelListener(jTable1);
    			fs.setEnabled(true);
    			nom.select(0);
    			numero.setText("");
    			numeroDevis.setText("");
    			fc.removeAll();
    			fc.remove(fc.getContentPane());
    			fc.dispose();
    			fc = null;
    			System.gc();
    		}
    		catch (Exception e) {
    			e.printStackTrace();
    			System.out.println("probleme lors de la création de la facture");
    			JOptionPane.showMessageDialog(fc, 
    			         "Attention\n Vous avez mal saisie un champs",
    			         " Erreur ",
    			         JOptionPane.WARNING_MESSAGE);
    		}
    	}
     
    }
    Voila si tu as des questions. Merci de ton aide c'est vraiment sympa

  9. #9
    Membre très actif
    Avatar de william44290
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2009
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 400
    Par défaut
    Pas facile de rentrer dans le code d'une autre personne mais

    List<Facture> tableauFactures; qui ajoute et supprime des factures dans cette liste ?

    par ailleurs il y a une sorte de référence circulaire entre le bouton Valider et actionListener new validerAjoutFacture
    Ce couple bouton/Actionlistener ne pourra jamais être ramassé.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 40
    Par défaut
    Ouais je sais mais c'est gentil de m'aider

    List<Facture> tableauFactures se remplit dans le bean facture.
    Lors de l'ajout d'une facture ou la modifiaction ou la suppression, en plus du changement en BDD, le tableauFactures est aussi modfié (il n'est pas rechargé de la base car une fonction recherche existe dans la JFrame d'affichage des factures..)

    Comment ca un probleme de reference circulaire ? il n'y a que mon bouton valider qui appelle l'actionListener mais pas dans l'autre sens je ne comprends pas

  11. #11
    Membre très actif
    Avatar de william44290
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2009
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 400
    Par défaut
    euu.. pas de référence circulaire j'ai confondu AjouterFacture et ValiderAjouterFacture.

  12. #12
    Membre très actif
    Avatar de william44290
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2009
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 400
    Par défaut
    Sur la liste facture qui/quand on retire une facture ?

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 40
    Par défaut
    f.sauvegarder appel la methode sauvegarder du bean facture

    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
     
     
    public void sauvegarder(Facture f) {
    		String url = "jdbc:odbc:AppliAntoine"; 
    	    Connection con = null; 
    	    try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
    	         con = DriverManager.getConnection(url,"",""); 
    	         Statement requete = con.createStatement(); 
    	         String sql="INSERT INTO FACTURES ([NUMERO FACTURE], [NUMERO DEVIS], [CODE CLIENT], [DATE]) "; 
    	         sql+= " VALUES (" + f.getNumero() + "," + f.getNumeroDevis() + ",'" + f.getCdClient(nomClient) + "','20/09/2010')";
    	         // Exécution de la requete 
    	         requete.executeUpdate(sql); 
    	         System.out.println(" ligne inséré avec la requete \n"+sql);
    	         requete.close();
    	         con.close();
    	         tableauFactures.add(f);
    	         sql="";
    	        } 
    	   catch(Exception e1) {  System.out.println("Probleme sauvegarde en BDD"); e1.printStackTrace(); }
    	}
    C'est ici que tout se passe pour l'ajout en tout cas, apres j'ai les memes problemes avec supprimer modifier mais quand ajouter marchera se sera facile

  14. #14
    Membre très actif
    Avatar de william44290
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2009
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 400
    Par défaut
    Le problème c'est qu'a un moment on doit trouver quelque chose comme :

    tableauFactures.remove(f);

    Non ???

  15. #15
    Membre très actif
    Avatar de william44290
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2009
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 400
    Par défaut
    Par ailleurs tu sembles cumuler les ActionListener sur un même bouton.

    IL serait souhaitable d'utiliser un removeActionListener sur le bouton incriminé.

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 40
    Par défaut
    oui c'est exact dans la fonction supprimer. Cela pose un problème ?
    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
     
    public static void supprimer(Facture f) {
    		String url = "jdbc:odbc:AppliAntoine"; 
    	    Connection con = null; 
    	    try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
    	         con = DriverManager.getConnection(url,"",""); 
    	         Statement requete = con.createStatement(); 
    	         String sql="DELETE FROM FACTURES "; 
    	         sql+= "WHERE [NUMERO FACTURE]="+f.getNumero();
    	         // Exécution de la requete 
    	         requete.executeUpdate(sql); 
    	         System.out.println("la facture a été supprimé avec la requete \n"+sql);
    	         requete.close();
    	         con.close();
    	         tableauFactures.remove(f);
    	         sql="";
    	        } 
    	   catch(Exception e1) {  System.out.println("Probleme sauvegarde en BDD"); e1.printStackTrace(); }
    	}
    Tu parle de cumul d'actionlistener mais je ne comprend pas bien. Si on prend l'exemple du bouton "ajouter" pour creer une facture, je ne lui ajoute qu'un actionlistener (avec addactionlistener()), tu veux dire par là qu'à la fin de l'ajout de ma facture en base je devrai le supprimer du bouton ?

  17. #17
    Membre très actif
    Avatar de william44290
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2009
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 400
    Par défaut
    bon ok pour le remove dans la fonction supprimer.

    pour le actionListener tout dépend de la durée de vie du bouton en question. Mais sans voir toute ta fenêtre et suivant la description initiale, le problème vient certainement de là.

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 40
    Par défaut
    OUAIS t'avais raison merci beaucoup...j'ai supprimé l'actionlistener du bouton en plus de ce que j'avais déjà et ca marche...plus de message d'erreur et d'appel à la fonction plusieurs fois..

    Merci beaucoups à toi.

    PS : j'ai regardé ton appli vite fait et ça à l'air pas mal.. il y a un résumé des fonctionalité développé dessus ?

  19. #19
    Membre très actif
    Avatar de william44290
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Juin 2009
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 400
    Par défaut
    Réponse au ps: Quelles fonctionnalités ? sur le soft ABC_COURSE ou sur l'atelier logiciel ?

  20. #20
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 40
    Par défaut
    J'aime bien le ABC nounou moi...je trouve que ça peut être utile

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. probleme JFrame : ferme automatique l'application
    Par daweed74 dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 17/03/2006, 11h55
  2. Probleme Programation JAVA débutant
    Par tomtom62136 dans le forum Langage
    Réponses: 1
    Dernier message: 03/03/2006, 12h07
  3. Probleme applet java sur mon site
    Par halo90 dans le forum Applets
    Réponses: 5
    Dernier message: 01/02/2006, 16h18
  4. probleme securite java
    Par ghan77 dans le forum Langage
    Réponses: 2
    Dernier message: 20/01/2006, 10h09
  5. [débutant] Probleme JFrame
    Par trollchichon dans le forum Agents de placement/Fenêtres
    Réponses: 10
    Dernier message: 28/12/2005, 14h02

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