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

SWT/JFace Java Discussion :

Utilisation de sous interface


Sujet :

SWT/JFace Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 16
    Par défaut Utilisation de sous interface
    Bonjour,

    je souhaite créer une application qui possède plusieurs fenêtres différentes selon le contexte..

    j'ai plusieurs fenêtres qui utilisent une sous interface commune.
    Au lieu de copier/coller cette sous interface dans mes 4 fenêtres et de faire des erreurs
    je voulais savoir si c'était possible à partir d'une interface d'appeler l'autre sous interface ? et comment ?

    j'ai bien quelques pistes.. en utilisant des Composites.. mais je suis pas sur, et je me demande quelle structure adopté à mon fichier Java.

    je vous en remercie par avance de votre aide et/ou de me rediriger vers une doc.

  2. #2
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par AnthonyL44
    Bonjour,

    je souhaite créer une application qui possède plusieurs fenêtres différentes selon le contexte..

    j'ai plusieurs fenêtres qui utilisent une sous interface commune.
    Au lieu de copier/coller cette sous interface dans mes 4 fenêtres et de faire des erreurs
    je voulais savoir si c'était possible à partir d'une interface d'appeler l'autre sous interface ? et comment ?

    j'ai bien quelques pistes.. en utilisant des Composites.. mais je suis pas sur, et je me demande quelle structure adopté à mon fichier Java.

    je vous en remercie par avance de votre aide et/ou de me rediriger vers une doc.
    je comprends pas ton problème

    Quand tu parles d'interface, tu parles d'interface graphique ? Ou alors d'une interface au niveau POO ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 16
    Par défaut
    d'interface graphique

    genre pour simplifier, j'ai quatre fenêtres(interface graphique) qui intégre tous un Label, commun aux quatre.
    moi ce que je veux c'est qu'au lieu de changer le texte du Label ici ou là, je veux le changer qu'une seule fois.
    et que les 4 interfaces graphiques le prenne en compte à l'ouverture..

    ok ou pas encore assez clair ?

  4. #4
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par AnthonyL44
    d'interface graphique

    genre pour simplifier, j'ai quatre fenêtres(interface graphique) qui intégre tous un Label, commun aux quatre.
    moi ce que je veux c'est qu'au lieu de changer le texte du Label ici ou là, je veux le changer qu'une seule fois.
    et que les 4 interfaces graphiques le prenne en compte à l'ouverture..

    ok ou pas encore assez clair ?
    Oui, c'est clair cette fois, merci

    Par contre, si tu veut avoir le même objet ce sera pas possible, puisqu'un objet n'a qu'un parent.

    par contre, ce que tu peut faire, c'est une classe avec une méthode getLabel() qui va renvoyer un nouveau label tout en conservant une référence sur celui-ci et avec méthode statique update(String texte) qui va modifier le texte de chacun des Labels.

    C'est comme ca que je ferais, mais il y a peut-être une meilleure solution.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 16
    Par défaut
    mouais, c'est pas tout a fait ce que je veux, mais je me demande si sous Java on peut vraiment faire ca..
    en fait, quand je dis d'utiliser une Spec d'une autre interface graphique, je m'inspire du langage Smalltalk en disant ca...

    j'ai structuré mes fichiers Java de la suite :

    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
    public class MaSpec {
     
    	public void run() {
    		Display display = new Display();
    		Shell shell = new Shell (display, SWT.SHELL_TRIM);	// SHELL_TRIM pour avoir la croix de fermeture, agrandissement, réduction
    		shell.setText("titre");	// donne un titre à la fenetre
    		createContents(shell);	// appel pour créer les widgets
    		shell.setBounds(54, 164, 637, 480 );	// dimensionne la fenetre
    		shell.open();	// lance l'affichage
    		while (!shell.isDisposed()) {	// boucle d'affichage
    			if (!display.readAndDispatch()) {
    				display.sleep();
    			}
    		}
    		display.dispose();	// fermeture
    	}
     
    	public void createContents(Composite compo) {
    		//liste des composants
    	}
     
    	public static void main (String[] args) {
    		new MaSpec.run();
    	}
    }
    et donc je pensais à partir d'une autre Spec la réutiliser

    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
    public class AutreSpec {
     
    	public void run() {
    		Display display = new Display();
    		Shell shell = new Shell (display, SWT.SHELL_TRIM);	// SHELL_TRIM pour avoir la croix de fermeture, agrandissement, réduction
    		shell.setText("titre");	// donne un titre à la fenetre
    		createContents(shell);	// appel pour créer les widgets
    		shell.setBounds(54, 164, 637, 480 );	// dimensionne la fenetre
    		shell.open();	// lance l'affichage
    		while (!shell.isDisposed()) {	// boucle d'affichage
    			if (!display.readAndDispatch()) {
    				display.sleep();
    			}
    		}
    		display.dispose();	// fermeture
    	}
     
    	public void createContents(Composite compo) {
    		...
    		new MaSpec().createContents(compo);
    	}
     
    	public static void main (String[] args) {
    		new AutreSpec.run();
    	}
    }
    ca c'était mon idée, inspiré par 2-3 sites, mais sauf que j'ai l'impression que c'est pas trop comme ca qu'il faut s'y prendre,
    et je ne trouve aucune doc, aucune source, pour comprendre comment je dois faire si je veux réutiliser une définition d'interface..

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 145
    Par défaut
    Le mieux reste les Composites.
    Mieux vaut créer un classe Composite paramétrable qui pourra être utilisée plusieurs fois dans différents écrans/vues/panels...

    Il suffira d'ajouter le Composite comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
    MyComposite comp = new MyComposite(parent, SWT.NONE);
    comp.setMyParam(myParam);
    ...
    Une classe peut ensuite mettre à jour simultanément les composites...

    En utilisant les pattern design adéquates (genre Factory pour construire et garder les références des Composites créés), on doit pouvoir s'en sortir...

Discussions similaires

  1. [EJB] Utiliser seulement les interfaces locales avec les ejb
    Par clement42 dans le forum Java EE
    Réponses: 1
    Dernier message: 06/01/2006, 12h12
  2. Utiliser FD_SET sous Windows sur l'entré STDIN ?
    Par MonsieurAk dans le forum Windows
    Réponses: 6
    Dernier message: 09/12/2005, 20h45
  3. Composants à utiliser pour une interface graphique Java
    Par nicolas.pied dans le forum Composants
    Réponses: 4
    Dernier message: 28/11/2005, 20h27
  4. [CR8.5] Obligé d'utiliser un sous-rapport ou pas ?
    Par liberio dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 09/06/2004, 18h10
  5. cherchecomment utiliser boost sous linux
    Par Krost dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 25/02/2004, 22h03

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