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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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.

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

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