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

Interfaces Graphiques en Java Discussion :

Eviter le plurilancement


Sujet :

Interfaces Graphiques en Java

  1. #1
    Expert confirmé
    Avatar de X-plode
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2005
    Messages
    682
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2005
    Messages : 682
    Points : 4 883
    Points
    4 883
    Par défaut Eviter le plurilancement
    Bonjour,

    Voilà j'ai une petite question,
    après maintes recherche je n'ai pas trouve de solution adéquat.
    Je désire effectuer mon application de sorte qu''elle puisse qu'etre execute qu'une seule fois.
    J'ai essayer par des sockets comme il l'a ete indique par une personne mais sans resultat.
    Je m'en remets a vous afin que vous puissiez m'aider à trouver.

    Merci d'avance

  2. #2
    Membre averti
    Avatar de Orian
    Inscrit en
    Août 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Août 2006
    Messages : 372
    Points : 401
    Points
    401
    Par défaut
    Solution rustine parce qu je sais pas trop :

    Tu crèe un fichier au lancement de l'application et que tu supprime à la fermeture.

    Si on relance l'application et que le fichier existe l'application quitte et adieu.

    Maintnant c'est peut-être un peu pourri

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 238
    Points : 267
    Points
    267

  4. #4
    Expert confirmé
    Avatar de X-plode
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2005
    Messages
    682
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2005
    Messages : 682
    Points : 4 883
    Points
    4 883
    Par défaut
    Voilà se que j'ai fais et sa ne marche pas

    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
     
    public class Appli 
    {
    	public static void main(String[] args)
       {
    	  try
    	  {
    		  new ServerSocket(PORT);
    	  }
    	  catch(Exception e)
    	  {
    		  System.exit(0);
    	  }
    	  JFrame frame = new DesktopFrame();
    	  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	  frame.setVisible(true); 
    	  frame.setLocationRelativeTo(null);
     
       }
    	private static int PORT = 1234 ;
    	private static final long serialVersionUID=42L;
    }

  5. #5
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Points : 119
    Points
    119
    Par défaut
    je comprend pas trop pourquoi tu déclare frame en tant que JFrame et tu l'initialise en tant que desktopframe... sinon à première vue ça m'a l'air correct. qu'est ce qui ne marche pas au juste? le port n'est il pas déjà utilisé ?

  6. #6
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 859
    Points : 22 893
    Points
    22 893
    Billets dans le blog
    51
    Par défaut
    Note : frame est juste un nom de variable et sa classe DesktopFrame etend JFrame. Rien d'anormal la-dedans.

    Mon conseil a moi (qui ne change rien a ton probleme) est d'initialiser ta fenetre durant l'EDT avec SwingUtilities.invokeLater().

    J'ai modifie le code ainsi pour les tests et ca marche sans probleme. Mais normalement cela aurait du fonctionner de meme avec le code initial.

    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
    import java.net.*;
    import javax.swing.*;
     
    public class Appli  {
      public static void main(String[] args) {
        try {
          new ServerSocket(PORT);
        }
        catch(Exception e) {
          System.exit(0);
        }
        SwingUtilities.invokeLater(new Runnable() {
          public void run() {
            JFrame frame = new JFrame();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setVisible(true); 
            frame.setLocationRelativeTo(null);
          }
        });    
      }
     
      private static int PORT = 1234 ;
      private static final long serialVersionUID=42L;
    }

  7. #7
    Expert confirmé
    Avatar de X-plode
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2005
    Messages
    682
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2005
    Messages : 682
    Points : 4 883
    Points
    4 883
    Par défaut
    Mais bouye avec mon code quand tu as teste sa a marche ?
    Sinon merci pour le conseil

  8. #8
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    As-tu lu cette page (et recopié telle quelle la classe) ?

    http://rom.developpez.com/java-instance-unique/

  9. #9
    Expert confirmé
    Avatar de X-plode
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2005
    Messages
    682
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2005
    Messages : 682
    Points : 4 883
    Points
    4 883
    Par défaut
    Arf je l'avais pas vu merci pour le lien je vais tester ca

  10. #10
    Membre confirmé Avatar de billynirvana
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2004
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 472
    Points : 552
    Points
    552
    Par défaut
    j'ai toujours mon probleme avec le firewall. Cette solution marche si le port n'est pas bloqué par le firewall.

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Bah sinon tu as pas trente choix: un fichier de lock ou du code natif.

  12. #12
    Membre confirmé Avatar de billynirvana
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2004
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 472
    Points : 552
    Points
    552
    Par défaut
    erf... oui, je pense que c'est pour cette raison que Eclipse utilise un fichier .lock, car moins contraignante de ce point de vue.

    Merci.

Discussions similaires

  1. [C#] Comment eviter les boucles infinies ?
    Par Thomas Lebrun dans le forum C#
    Réponses: 12
    Dernier message: 09/06/2004, 00h04
  2. Encodage de caracteres: eviter 81, 8D, 8F, 90, 9D ->
    Par Fladnag dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 27/04/2004, 11h17
  3. Pb affichage avec un PaintBox (pour eviter scintillement)
    Par juan64 dans le forum C++Builder
    Réponses: 7
    Dernier message: 08/04/2004, 09h21
  4. [opengl] Comment eviter l'ordre de faces ?
    Par :GREG: dans le forum OpenGL
    Réponses: 3
    Dernier message: 02/03/2004, 19h14
  5. Eviter deux nombres identiques dans un tirage aléatoire
    Par moon tiger dans le forum Pascal
    Réponses: 5
    Dernier message: 25/11/2002, 09h57

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