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 :

Pb d'affichage des fenêtres


Sujet :

SWT/JFace Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 32
    Par défaut Pb d'affichage des fenêtres
    salut,
    J'ai développé plusieurs fenêtres (sous forme de formulaire) et j'ai une fenêtre principale qui représente un menu.
    Je veux que l'affichage de ces formulaires soit dans la fenêtre principale lors du clique sur un menuItem.
    Lors du premier choix, la fenêtre s'affiche correctement mais lorsque je clique sur un autre Item rien de se passe: la première fenêtre reste tjs afficher.
    j'ai essayé avec redraw() mais tjs c'est le même pb.

    Qui a une idée?

    Merci

  2. #2
    Membre chevronné
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 340
    Par défaut
    essayes la méthode layout()

  3. #3
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 32
    Par défaut
    J'ai essayé aussi plusieurs autres méthodes mais tjs ça m'arche pas :
    voilà le code, j'ai essayé toutes les méthodes commentées
    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
     
     
     MenuItem addItem = new MenuItem(newMenu, SWT.NONE);
          addItem.setText("Add Person"); 
          shortcutItem.addSelectionListener(new SelectionAdapter() {
        	public void widgetSelected(SelectionEvent arg0) {
        		     //  shell.update() ;
        		     //  shell.redraw() ;
        		    //  shell.layout() ;
        		    //   shell.layout(true) ;
     
                             // appel à une nouvellle fenetre    		 	
        		fenetre2 f=new fenetre2(shell,SWT.NONE,display) ;
     
        		//shell.setLayout(f.getLayout()) ;
     
        		f.setSize(400,400);
        	            f.setLocation(0,0);
     
        	}
        	});
    Est ce qu'il y a un pb avec le gestionnaire des evenements : mais pour le premier appel d'une fenetre ca marche!!!!
    OU Est ce que je peux utiliser d'autres bibliotheque pour résoudre le pb?

    J'utilise SWT pour la première fois
    Merci

  4. #4
    Membre chevronné
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 340
    Par défaut
    Euh tu ne respectes pas bien les conventions de codage de Java : les noms de classe doivent toujours commencer par une majuscule !
    Sinon est-ce que tu pourrais donner le code de ta classe fenetre2 pour voir parce qu'il ne semble pas qu'il y ai de probleme avec la gestion des événements.
    Par contre je ne comprends pas d'où sort le shortcutItem auquel tu ajoute l'écouteur...

  5. #5
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 32
    Par défaut
    Oui c'était pas professionel merci pour la rq.
    ici le code complet de la fenetre2 et la fenetre principal fenetre1

    fenetre1
    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
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
     
    package guiTest;
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.graphics.Font;
    import org.eclipse.swt.graphics.Image;
    import org.eclipse.swt.layout.FillLayout;
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.Menu;
    import org.eclipse.swt.widgets.MenuItem;
    import org.eclipse.swt.widgets.Shell;
    import org.eclipse.swt.events.*;
     
     
    public class fenetre1 {
      public static void main(String[] args) {
     
       final Display display = new Display();
       final  Shell shell = new Shell(display);
     
        shell.setSize(400,400) ;
        shell.setText("Menu") ;
        Font font = new Font(display, "Arial", 9, SWT.BOLD);
     
        shell.setLayout(new FillLayout()) ;
     
     
     
        final Image imageBtn1 = new Image(display, "fond-page.JPG");
        Image img2=new Image(display,"DELETE.bmp") ;
     
     
        // Create the bar menu
        Menu menuBar = new Menu(shell, SWT.BAR);
        shell.setMenuBar(menuBar) ;
     
     
              // Create the File item's dropdown menu
             Menu PersMenu = new Menu(menuBar);
     
     
        // Create all the items in the bar menu
       MenuItem PersItem = new MenuItem(menuBar, SWT.CASCADE ) ;
       PersItem.setText("Gestion des personnes");    
     
        PersItem.setMenu(PersMenu);
     
        // Create all the items in the Pers dropdown menu
        MenuItem addItem = new MenuItem(PersMenu, SWT.NONE | SWT.CASCADE);
        addItem.setText("Add Person ");
        MenuItem deleteItem = new MenuItem(PersMenu, SWT.NONE | SWT.CASCADE);
        deleteItem.setText("Delete Person");
     
        MenuItem optionSeparator = new MenuItem(PersMenu, SWT.SEPARATOR);
        MenuItem AllItem = new MenuItem(PersMenu, SWT.PUSH);
        AllItem.setText("All Person");
     
     
        AllItem.addSelectionListener(new SelectionAdapter() {
        	public void widgetSelected(SelectionEvent arg0) {
     
        	 		AllPerson alg=new AllPerson(shell,SWT.NONE,display) ;
        			alg.setSize(400,400);
        		           alg.setLocation(0,0);
     
        	}
        	});
     
     
     
     
     
          addItem.addSelectionListener(new SelectionAdapter() {
        	public void widgetSelected(SelectionEvent arg0) {
     
        		fenetre2 f=new fenetre2(shell,SWT.NONE,display) ;
        	   	f.setSize(400,400);
        	            f.setLocation(0,0);
     
        	}
        	});
     
     
     
       deleteItem.addSelectionListener(new SelectionAdapter() {
        	public void widgetSelected(SelectionEvent arg0) {
        	      DeletePerson  dd=new DeletePerson (shell,SWT.NONE,display) ;
        	 	dd.setSize(400,400);
        		 dd.setLocation(0,0);
     
        	}
        	});
     
     
        centrerSurEcran center=new centrerSurEcran() ;
        center.centrer(display, shell) ;
     
        shell.setBackgroundImage(imageBtn1) ;
        shell.setFont(font) ;
     
     
        shell.open();
        while (!shell.isDisposed()) {
          if (!display.readAndDispatch()) {
            display.sleep();
          }
        }
      }
    }

    fenetre2
    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
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
     
     
    package guiTest;
     
    import org.eclipse.swt.layout.*;
    import org.eclipse.swt.*;
    import org.eclipse.swt.widgets.*;
    import org.eclipse.swt.graphics.*;
    import org.eclipse.swt.events.*;
    import org.eclipse.swt.widgets.Label;
    import org.eclipse.swt.widgets.Composite; 
     
    public class fenetre2 extends Composite{
     
    	Label label1;
    	Label label2;
    	Label label3;
    	Label label4;
    	Label label5;
    	Label label6;
    	Label label7;
    	Image imageBtn1 ;
     
    public fenetre2(Composite parent, int style,Display d) {
    		 super(parent, style);
     
     
    GridLayout gridLayout = new GridLayout();
    gridLayout.marginWidth=25 ;
    gridLayout.verticalSpacing=10 ;
    gridLayout.numColumns = 2;
    setLayout(gridLayout);
    Image img=new Image(this.getDisplay(),"SAVE.bmp") ;
    Image img2=new Image(this.getDisplay(),"DELETE.bmp") ;
    imageBtn1 = new Image(this.getDisplay(), "fond-page.JPG");
     
    Font font = new Font(d, "Arial", 9, SWT.BOLD);
     
     
     label1 = new Label(this, SWT.NONE );
     
    label1.setText("ID :");
    label1.setFont(font);
    final Text text1 = new Text(this, SWT.BORDER | SWT.READ_ONLY );
    text1.setBackgroundImage(imageBtn1) ;
     
    label2 = new Label(this, SWT.NONE);
    label2.setFont(font);
    label2.setText("name:");
    final Text text2 = new Text(this, SWT.BORDER);
     
     
    label3 = new Label(this, SWT.NONE);
    label3.setFont(font);
    label3.setText("firstname :");
    final Text text3 = new Text(this, SWT.BORDER);
     
     
     
    label4 = new Label(this, SWT.NONE);
    label4.setFont(font);
    label4.setText("Mail :");
    final Text text4 = new Text(this, SWT.BORDER);
     
     
    label5 = new Label(this, SWT.NONE);
    label5.setFont(font);
    label5.setText("Phone :");
    final Text text5 = new Text(this, SWT.BORDER);
     
     
    label6 = new Label(this, SWT.NONE);
    label6.setFont(font);
    label6.setText("Title :");
    final Text text6 = new Text(this, SWT.BORDER);
     
     
    label7 = new Label(this, SWT.NONE);
    label7.setFont(font);
    label7.setText("Institut :");
    final Combo combo = new Combo(this, SWT.BORDER);
    combo.add("element 1 ");
    combo.add("element 2 ");
    combo.add("element 3 ");
    combo.add("element 4 ");
     
    Button button1 = new Button(this, SWT.NONE);
    button1.setImage(img) ;
    button1.setFont(font);
    button1.setText("   Enregister   ");
     
     
    button1.addSelectionListener(new SelectionAdapter() {
    	public void widgetSelected(SelectionEvent arg0) {
     
    		if(text4.getText().matches(".+@.+\\.[a-z]+"))
    			System.out.println("OK") ;
    	           else 
    	              {    int style = SWT.ICON_ERROR; */
    		        MessageBox messageBox = new MessageBox(this, style);
    		         messageBox.setMessage("Adresse Email n'est pas correcte");
    		         messageBox.open();
    		  }
     
    	}
    	});
    Button button2 = new Button(this, SWT.NONE);
    button2.setImage(img2) ;
    button2.setFont(font);
    button2.setText("   Effacer   ");
     
     
    button2.addSelectionListener(new SelectionAdapter() {
    	public void widgetSelected(SelectionEvent arg0) {
     
    		text2.setText("");
    		text3.setText("") ;
    		text4.setText("") ;
    		text5.setText("") ;
    		text6.setText("") ;
    		combo.deselectAll();		
    	}
    	});
     
     
     
    GridData data = new GridData();
    data.widthHint = 100;
    text1.setLayoutData(data);
    text2.setLayoutData(data);
    text3.setLayoutData(data);
    text4.setLayoutData(data);
    text5.setLayoutData(data);
    text6.setLayoutData(data);
    combo.setLayoutData(data);
     
     
    GridData dg = new GridData();
    dg.verticalIndent = 30;
    button1.setLayoutData(dg);
    button2.setLayoutData(dg) ;
     
    this.setBackgroundImage(imageBtn1) ;
    this.setBG(imageBtn1) ;
     
     
    }
     
    public void setBG(Image imageBtn1){
    	label1.setBackgroundImage(imageBtn1) ;
    	label2.setBackgroundImage(imageBtn1) ;
    	label3.setBackgroundImage(imageBtn1) ;
    	label4.setBackgroundImage(imageBtn1) ;
    	label5.setBackgroundImage(imageBtn1) ;
    	label6.setBackgroundImage(imageBtn1) ;
    	label7.setBackgroundImage(imageBtn1) ;
     
    }
     
    }
    les deux autres fenetres sont déclarées exactement comme fenetre deux.

    Merci

  6. #6
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 32
    Par défaut Solution et pb
    OOPS, j'ai oublié l'appel de la méthode dispose de Display qui permet d'attendre les évenements
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    display.dispose() ;
    J'ai ajouté ensuite la méthode update() de la classe Shell avant l'appel de la nouvelle fenetre.
    Mais le problème maintenant que la nouvelle fenetre s'affiche à côté de l'ancienne??? et ainsi de suite

    Quelqu'un a une idée?
    Merci

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

Discussions similaires

  1. Gérer l'affichage des fenêtres avec des signaux
    Par flomanson dans le forum Débuter
    Réponses: 10
    Dernier message: 09/09/2011, 13h48
  2. Affichage des fenêtres !
    Par djiga4me dans le forum Langage
    Réponses: 8
    Dernier message: 27/07/2010, 18h40
  3. Swing et Netbeans - Affichage des fenêtres décalé
    Par gardaud dans le forum NetBeans
    Réponses: 0
    Dernier message: 16/12/2008, 12h05
  4. Plan d'affichage des fenêtres
    Par GodGives dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 25/10/2007, 09h45
  5. Lenteur d'affichage des fenêtre et des données
    Par napegadie dans le forum VB.NET
    Réponses: 0
    Dernier message: 27/08/2007, 16h32

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