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

avec Java Discussion :

Activation d'une seule fenêtre


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2010
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 172
    Par défaut Activation d'une seule fenêtre
    Bonjour,

    j'ai un petit problème sur la fenêtre client , en faite je veux empêcher l'ouverture de la même fenêtre client quand y a déja une ouverte est connecté pour le meme client ... bref limité chaque client par une seul fenetre ...ne pas créer double fenetre pour le meme client.j'espère que ma question est claire

    merci encore

    A+

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 105
    Par défaut
    De quelle fenêtre client nous parles tu la ?

    Tu parles de n'instancier qu'une seule et unique fois une application ?

    Si ce n'est que ca, ceci feras ton bonheur : http://rom.developpez.com/java-instance-unique/
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2011
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2011
    Messages : 101
    Par défaut
    Je pense qu'un client est un objet dans son cas. Et qu'il peut ouvrir une fenêtre avec les informations de chaque client, mais qu'un client ne peut être ouvert 2x.

    Dans ce cas, ajoute un attribut de type boolean à l'objet client pour savoir si c'est déjà ouvert ou pas.
    Genre :

    private boolean frameOpen;

    Tu initialises à false, tu mets true quand tu ouvres et tu remets false quand tu fermes. Avec un petit if à l'appel de la fenêtre et ça devrait marcher.

    Maintenant il y a peut-être une méthode qui permet de faire cela plus simplement, mais je n'en sais pas plus.

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2010
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 172
    Par défaut
    Citation Envoyé par wax78 Voir le message
    De quelle fenêtre client nous parles tu la ?

    Tu parles de n'instancier qu'une seule et unique fois une application ?

    Si ce n'est que ca, ceci feras ton bonheur : http://rom.developpez.com/java-instance-unique/
    OK merci je vais testé ça. et voire ..

    A+

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Par défaut
    Il faut simplement une liste de client déjà co sur le serveur, et la regarder à chaque demande d'ouverture.

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2010
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 172
    Par défaut
    Citation Envoyé par wax78 Voir le message
    De quelle fenêtre client nous parles tu la ?

    Tu parles de n'instancier qu'une seule et unique fois une application ?

    Si ce n'est que ca, ceci feras ton bonheur : http://rom.developpez.com/java-instance-unique/
    Bonjour,

    Effectivement c'est ça ce que je cherche mais je n'arrive pas à mettre en place la classe qui empache d'autre instanciation voici un exemple didactique pour essayé de mettre la classe cité sur le document (du lien):
    le but est d'empêcher l'instanciation de la fenêtre plusieurs fois :

    le code de la classe fenetre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public class fenetre_unique extends JFrame
    {
     
    		public fenetre_unique()
    		{			
              this.setTitle("Ma première fenêtre java");          //Définit un titre pour votre fenêtre        
              this.setSize(400, 500);                             //Définit une taille pour celle-ci ; ici, 400 px de large et 500 px de haut      
              this.setLocationRelativeTo(null);                    //Nous allons maintenant dire à notre objet de se positionner au centre       
              this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  //Ferme-toi lorsqu'on clique sur "Fermer" !           
              this.setVisible(true);
    		}           
     
    }
    le code de la classe qui empahe d'autre instancition de la classe fenetre (celui du lien)

    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
     
    // Port à utiliser pour communiquer avec l'instance de l'application lancée.
    final int PORT = 32145;
    // Message à envoyer à l'application lancée lorsqu'une autre instance essaye de démarrer.
    final String MESSAGE = "nomDeMonApplication";
    // Actions à effectuer lorsqu'une autre instance essaye de démarrer.
    final Runnable RUN_ON_RECEIVE = new Runnable() {
        public void run() {
            // On exécute ce runnable dans l'EDT
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    if(mainFrame != null) {
                        // Si la fenêtre n'est pas visible (uniquement dans le systray par exemple), on la rend visible.
                        if(!mainFrame.isVisible())
                            mainFrame.setVisible(true);
                        // On demande à la mettre au premier plan.
                        mainFrame.toFront();
                    }
                }
            });
        }                   
    });
     
    UniqueInstance uniqueInstance = new UniqueInstance(PORT, MESSAGE, RUN_ON_RECEIVE);
    // Si aucune autre instance n'est lancée...
    if(uniqueInstance.launch()) {
        // On démarre l'application.
        new MonApplication();
    }
    1- ma question est comment faire pour fonctionner ça ? (désolé si ma question est un peu bête mais je n'arrive pas à voir la chose)

    A+

  7. #7
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 105
    Par défaut
    Ne sachant trop ce qui te bloque, j'imagine que

    c'est l'equivalent de ce que tu fais quand tu crée ta frame et l'affiche, donc c'est la qu'il faut chippoter.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre confirmé
    Inscrit en
    Décembre 2010
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 172
    Par défaut
    Citation Envoyé par wax78 Voir le message
    Ne sachant trop ce qui te bloque, j'imagine que

    c'est l'equivalent de ce que tu fais quand tu crée ta frame et l'affiche, donc c'est la qu'il faut chippoter.
    voila comment j'ai fait mais sa ne marche pas :
    dans ma classe main voila comment j'ai fait pour lancer ma fenetre mais sa ne marche pas (des erreurs) :
    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
     
    public class classmain 
    {
     
    	public static void main(String[] args) 
    	{
     
    		final int PORT = 32145;
    		// Message à envoyer à l'application lancée lorsqu'une autre instance essaye de démarrer.
    		final String MESSAGE = "nomDeMonApplication";
    		// Actions à effectuer lorsqu'une autre instance essaye de démarrer.
    		final Runnable RUN_ON_RECEIVE = new Runnable() {
    		    public void run() {
    		        // On exécute ce runnable dans l'EDT
    		        SwingUtilities.invokeLater(new Runnable() {
    		            public void run() {
    		                if(mainFrame != null) {
    		                    // Si la fenêtre n'est pas visible (uniquement dans le systray par exemple), on la rend visible.
    		                    if(!mainFrame.isVisible())
    		                        mainFrame.setVisible(true);
    		                    // On demande à la mettre au premier plan.
    		                    mainFrame.toFront();
    		                }
    		            }
    		        });
    		    }                   
    		});
     
    		UniqueInstance uniqueInstance = new UniqueInstance(32145, classmain , RUN_ON_RECEIVE);
    		// Si aucune autre instance n'est lancée...
    		if(uniqueInstance.launch()) {
    		    // On démarre l'application.
    			new fenetre_unique();
    		}		
    	}
     
    }
    quel est l'erreur comment peut on corrigé ça???:

    merci encore de m'avoir aidé

    A+

  9. #9
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 105
    Par défaut
    Citation Envoyé par zpico Voir le message
    quel est l'erreur comment peut on corrigé ça???:
    Bah a la non vue de l'erreur, impossible de te répondre. Poste l'erreur
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. [WinDev 12] 2 fichiers dans une seule fenêtre
    Par Xsara 167 cv dans le forum WinDev
    Réponses: 5
    Dernier message: 24/01/2008, 10h09
  2. c# une seule fenêtre pour un projet
    Par meddy dans le forum C#
    Réponses: 3
    Dernier message: 12/12/2007, 23h32
  3. Afficher une seule fenêtre dans la barre des taches
    Par Amissan dans le forum Interfaces Graphiques en Java
    Réponses: 7
    Dernier message: 25/01/2007, 17h56
  4. Ouvrir une adresse dans une seule fenêtre
    Par efficks dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 01/04/2006, 11h45
  5. fermer une seule fenêtre
    Par comme de bien entendu dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 14/03/2006, 10h45

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