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

 Java Discussion :

Ouvrir une nouvelle fenêtre sous Eclipse


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Par défaut Ouvrir une nouvelle fenêtre sous Eclipse
    bonjour
    J'essaie de bouger des fenêtres sous éclipse
    D'abord je dois fermer la fenêtre active
    J'utilise pour cela une méthode déjà implémentée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	public boolean performFinish()
    	{
    		return( true);
    	}
    et je dois ouvrir une nouvelle fenêtre dans laquelle j'acquererai le path du fichier origine et son identificateur
    je vous met le code:
    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
    	public int RecupereNomDesFichier() throws ClassNotFoundException, IllegalArgumentException, NullPointerException, SQLException
    	{
    		int selectedId;
    		String selectedFile;
    		if( InterbaseManager.connection == null)
    			MissionDatabaseManager.OpenDatabaseCoherence();
    		ArrayList<ElementWork> elementWorks = MissionDatabaseManager.ReadWork();
    		// charger les fichier de la base de donnée et remplir cette liste
    		performFinish();
    		try
    		{
    			Iterator<ElementWork> itWork = elementWorks.iterator();
    			FileDialog fileDialog = new FileDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell()); 
    			while( itWork.hasNext())
    			{
    				elementWork = (ElementWork)itWork.next();
    				int id = elementWork.Id;
    				String str = elementWork.wsText;
    			}
    			// selectedFile contient le path vers le fichier seléctionner
    			selectedFile = ((MessageDialog) fileDialog).open();
    			selectedId = ((MessageDialog) fileDialog).open();
    		}
    		catch(NullPointerException ex)
    		{
    			ex.printStackTrace();
    		}
    		catch( java.lang.ClassCastException ex)
    		{
    			ex.printStackTrace();
    		}
    		buildModel( selectedId, selectedFile);
    		// ToDo il faut ressortir le numéro saisi par l'utilisateur
    		return( selectedId);
    dans ce fichier j'ai trois lignes qui ne compilent pas: les deux suivantes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    		// selectedFile contient le path vers le fichier seléctionner
    			selectedFile = ((MessageDialog) fileDialog).open();
    			selectedId = ((MessageDialog) fileDialog).open();
    et celle ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new FileDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell());
    Qui m'aiguilera sera

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 100
    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 100
    Par défaut
    dans ce fichier j'ai trois lignes qui ne compilent pas:
    Ca serait sympa de dire en quoi ça ne compile pas, la boule de crystal magique n'arrive pas à deviner sinon (C'est du JFace ou quoi que tu utilises la ?)
    (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 extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Par défaut Les réponses
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new FileDialog( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell())The constructor FileDialog(Shell) is undefined
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((MessageDialog) fileDialog).open();Cannot cast from FileDialog to MessageDialog
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((MessageDialog) fileDialog)Cannot cast from FileDialog to MessageDialog

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Les messages d'erreur sont assez explicites et une simple consultation de la JavaDoc permettent de le résoudre. A part, peut-être le premier, car le constructeur en question existe pourtant bel et bien dans la classe org.eclipse.swt.widgets.FileDialog, mais pas dans java.awt.FileDialog. A priori, je dirais que tu as importé cette dernière, qui, évidemment n'a pas de constructeur prenant un shell SWT en argument. Change tout d'abord l'import. Par contre, je te conseille d'utiliser le constructeur à 2 arguments, en passant un style SWT.OPEN ou SWT.SAVE, en fonction du fait que tu veuilles sélectionner un fichier pour le lire ou l'écrire (avec |SWT.MULTI en plus si tu veux pouvoir sélectionner plusieurs fichiers) : tu auras un comportement du dialogue adapté et plus efficace.

    Ensuite, tu as probablement cherché à caster en MessageDialog, parce que tu ne trouvais pas de méthode open sur FileDialog. Normal, ce n'est pas la bonne classe : en fait, cela aurait dû t'alerter sur le fait que ce n'était pas la bonne classe. Il n'y a pas de raison logique à ce qu'on doive caster pour appeler une méthode aussi utile et indispensable que celle qui permet d'afficher un dialogue. D'autant plus que la classe SWT n'est pas plus un MessageDialog (JFace) que celle d'AWT.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Par défaut D'une part les problème de compilation sont derrière nous
    D'autre part Je pars en NullPonterException
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    java.lang.NullPointerException
    	at com.all4tec.matelo.linguistique.wizards.LinguistiqueImportWizard.RecupereNomDesFichier(LinguistiqueImportWizard.java:79)
    	at com.all4tec.matelo.linguistique.wizards.LinguistiqueImportWizard$1.run(LinguistiqueImportWizard.java:123)
    	at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
    il part en exception sur la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FileDialog fileDialog = new FileDialog( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell());
    vous seriez de m'aider sur ce point

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Pour résoudre une NullPointerException, il sufft, soit en mode debug, soit par silmple traces (System.out.println(...)), de chercher qu'est-ce qui est null comme retour de méthode ou attribut qu'on accède pour invoquer une méthode ou accèder un attribut : si on fait truc.methodMachin(); et ça donne une NullPointerException sur cette ligne, c'est que truc est null. Si on a truc.methodMachin().methodBidule);, c'est que c'est soit truc, soit truc.methodMachin() retourne null. Et ainsi de suite.

    Mais là, vu que c'est dans PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), je me pose 2 questions :

    1. Tu es bien dans une application Eclipse RCP ? Et quelle versions E3 ou E4 ?
    2. Si oui, à quel moment ton code est-il exécuté ? Parce qu'il faut évidemment que le workbench soit démarré et qu'une fenêtre (vue ou éditeur) soit active pour faire cette invocation.
    3. sinon, ce n'est pas du tout comme ça qu'on fait :
      1. On créé un Display (qu'on oubliera pas de disposer à la fermeture de l'application
      2. On créé un Shell à partir du Display, tout simplement par new Shell(display)
    4. Question subsidiaire : si ce n'est pas une application Eclipse RCP, pourquoi utilsier SWT ? Non pas que je serais spécialement contre, mais c'est un peu plus sensible d'utiliser SWT et moins simple que SWING (toujours bien penser à disposer ses ressources, et surtout toujours devoir être synchrone sur le thread SWT (au moins si on le fait pas, on a une exception)).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

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

Discussions similaires

  1. [C#][Débutant]Ouvrir une nouvelle fenêtre en fermant l'ancienne
    Par neuromencien dans le forum Windows Forms
    Réponses: 3
    Dernier message: 21/04/2011, 09h20
  2. Réponses: 17
    Dernier message: 31/08/2006, 14h50
  3. ouvrir une nouvelle fenêtre dans une taille déterminé
    Par lnikolanta dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 26/09/2005, 15h26
  4. Ouvrir une nouvelle fentre en grand ?
    Par Sylk dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 15/09/2005, 13h14
  5. [ShellExecute] ouvrir une nouvelle fenêtre ie
    Par sony351 dans le forum C++Builder
    Réponses: 2
    Dernier message: 21/11/2004, 18h39

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