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 :

[SWT] Placement des éléments et mise à jour de texte boguant


Sujet :

SWT/JFace Java

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Par défaut [SWT] Placement des éléments et mise à jour de texte boguant
    Bonjour à toutes et à tous,

    Je ne suis pas très à l’aise avec SWT c'est pour cela que je vous demande votre aide.

    Mon interface graphique est simple voici mon 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
    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
     
    		final Display display = new Display ();
    		final Shell shell = new Shell (display);
    		shell.setText ("Interface");
     
    		GridLayout gridLayout = new GridLayout (4, false);
    		gridLayout.verticalSpacing = 8;
     
    		shell.setLayout (gridLayout);
     
    		Button source = new Button (shell, SWT.NULL);
    		source.setText ("Source...");
    		GridData gridData = new GridData ();
    		gridData.horizontalSpan = 1;
    		gridData.verticalSpan = 2;
    		gridData.heightHint = 50;
    		gridData.widthHint = 100;
    		source.setLayoutData (gridData);
     
    		Label sourceLabel = new Label (shell, SWT.NULL);
    		sourceLabel.setText ("Dossier source : ");
    		gridData = new GridData (GridData.HORIZONTAL_ALIGN_FILL);
    		sourceLabel.setLayoutData (gridData);
     
    		final Label sourceResLabel = new Label (shell, SWT.NULL);
    		sourceResLabel.setText (directoryToScan);
    		gridData = new GridData (GridData.HORIZONTAL_ALIGN_FILL);
    		gridData.horizontalSpan = 2;
    		sourceResLabel.setLayoutData (gridData);
     
    		source.addSelectionListener (new SelectionAdapter ()
    		{
    			public void widgetSelected (SelectionEvent e)
    			{
    				DirectoryDialog dialog = new DirectoryDialog (shell, SWT.OPEN);
    				String file = dialog.open ();
    				if (file != null)
    				{
    					sourceResLabel.setText (file);
    					directoryToScan = file;
    				}
    			}
    		});
     
    		Label destLabel = new Label (shell, SWT.NULL);
    		destLabel.setText ("Dossier destination : ");
    		gridData = new GridData (GridData.HORIZONTAL_ALIGN_FILL);
    		destLabel.setLayoutData (gridData);
     
    		Label destResLabel = new Label (shell, SWT.NULL);
    		destResLabel.setText (directoryToParse);
    		gridData = new GridData (GridData.HORIZONTAL_ALIGN_FILL);
    		gridData.horizontalSpan = 2;
    		destResLabel.setLayoutData (gridData);
     
    		final Button generate = new Button (shell, SWT.PUSH);
    		generate.setText ("Générer");
    		gridData = new GridData ();
    		gridData.heightHint = 30;
    		gridData.widthHint = 100;
    		gridData.horizontalSpan = 3;
    		gridData.horizontalAlignment = GridData.CENTER;
    		generate.setLayoutData (gridData);
     
    		generate.addSelectionListener (new SelectionAdapter ()
    		{
    			public void widgetSelected (SelectionEvent e)
    			{
    				generate ();
    				generate.setEnabled (true);
    			}
    		});
     
    		log = new Text (shell, SWT.WRAP | SWT.MULTI | SWT.BORDER | SWT.H_SCROLL
    				| SWT.V_SCROLL | SWT.READ_ONLY);
    		gridData = new GridData (GridData.HORIZONTAL_ALIGN_FILL
    				| GridData.VERTICAL_ALIGN_FILL);
    		gridData.horizontalSpan = 4;
    		gridData.grabExcessVerticalSpace = true;
    		gridData.horizontalAlignment = GridData.FILL;
    		log.setLayoutData (gridData);
     
    		shell.setSize (450, 400);
    		shell.open ();
     
    		while (!shell.isDisposed ())
    		{
    			if (!display.readAndDispatch ())
    			{
    				display.sleep ();
    			}
    		}
    		display.dispose ();
    Ce code est censé me générer la vue en pièce jointe (illustration.png).
    Cependant, j'obtient la vue illustrée par la deuxième pièce jointe (illustration2.png).

    Deux remarques:
    _ Mes éléments ne prennent pas l'ensemble de ma fenêtre
    _ Les deux libellés indiquant des chemins sont tronqués alors qu'il reste beaucoup de place sur la droite.

    Je n'arrive pas à corriger ces deux bogues. Auriez vous une solution?

    Deuxième chose, lorsque j'appuie sur générer, ceci execute un programme assez long ce qui fait que ma fenêtre est bloqué (ne répond pas). La solution est de mettre un Thread mais ceci ne fonctionne pas bien.

    Le plus génant est que j'aimerai afficher des chose dans mon Log au fur et à mesure que mon programme s'execute donc j'ecris:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    log.setText ("Log...");
    log.setText (log.getText () + "Traitement des fichiers...");
    Cependant, rien ne s'affiche même avec le thread! Seriez vous pourquoi? Peut être que si le programme est trop chargé il n'arrive pas à gérer!


    Merci d'avance pour votre aide précieuse
    Images attachées Images attachées   

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

Discussions similaires

  1. Déplacer des Qlabel et mise à jour
    Par rossjojos dans le forum Débuter
    Réponses: 2
    Dernier message: 29/04/2010, 12h29
  2. [AC-2007] Supprimer la demande de confirmation pour des requêtes ajout / mise à jour
    Par cslbcg dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 08/11/2009, 22h38
  3. [MySQL] vérification des variables avant mise à jour
    Par batoule80 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 01/11/2008, 11h18
  4. Placement des éléments
    Par madislak dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 21/11/2006, 16h42
  5. [MPD] Créé des tables de mise à jour
    Par Oberown dans le forum Schéma
    Réponses: 9
    Dernier message: 16/01/2005, 13h08

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