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 :

modifier la hauteur des lignes dans SWT Table


Sujet :

SWT/JFace Java

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut modifier la hauteur des lignes dans SWT Table
    Bonjour,

    je souhaite redimensionner une cellule (ligne) d'une table SWT. Y-a t-il quelqu'un qui a une idée?

    j'ai utilisé un attribut pour modifier la taille, mais ca fonctionne que pour agrandir la taille et non pour la diminuer.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    table.addListener(SWT.MeasureItem, new Listener() {
         public void handleEvent(Event event) {
         event.gc.setLineWidth(hauteur);
        event.height = hauteur;
    }
    Merci.

  2. #2
    Membre averti
    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
    Points : 379
    Points
    379
    Par défaut
    L'instruction event.gc.setLineWidth(hauteur); est inutile, elle sert à définir l'épaisseur du trait lorsque tu dessines.
    Sinon je ne vois pas comment faire autrement... il doit y avoir une taille minimal à une cellule de Table.

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par soft0613 Voir le message
    L'instruction event.gc.setLineWidth(hauteur); est inutile, elle sert à définir l'épaisseur du trait lorsque tu dessines.
    Sinon je ne vois pas comment faire autrement... il doit y avoir une taille minimal à une cellule de Table.
    Oui, t as raison,
    j'aurais du mettre

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    table.addListener(SWT.MeasureItem, new Listener() {
         public void handleEvent(Event event) {
              event.gc.setLineWidth(largeur);
              event.height = hauteur;
        }
    });


    Au niveau de cet exemple, j'ai voulu vérifier la diminution de la hauteur qui n'est pas fonctionnel au niveau de table SWT.

    y a t'il une autre façon de modifier la hauteur (sachant que j'utilise la version 3.2 de SWT)?

    Merci

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Ce problème est cité comme étant bug au niveau d'eclipse:

    https://bugs.eclipse.org/bugs/show_bug.cgi?id=154341

    Ci-dessous le code source de la méthode org.eclipse.swt.widgets.Table#sendMeasureItemEvent

    Code java : 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
    Event sendMeasureItemEvent (TableItem item, int row, int column, int hDC) {
    	int hFont = item.cellFont != null ? item.cellFont [column] : -1;
    	if (hFont == -1) hFont = item.font;
    	GCData data = new GCData ();
    	data.device = display;
    	data.hFont = hFont;
    	int nSavedDC = OS.SaveDC (hDC);
    	GC gc = GC.win32_new (hDC, data);
    	RECT itemRect = item.getBounds (row, column, true, true, false, false, hDC);
    	Event event = new Event ();
    	event.item = item;
    	event.gc = gc;
    	event.index = column;
    	event.x = itemRect.left;
    	event.y = itemRect.top;
    	event.width = itemRect.right - itemRect.left;
    	event.height = itemRect.bottom - itemRect.top;
    	sendEvent (SWT.MeasureItem, event);
    	event.gc = null;
    	gc.dispose ();
    	OS.RestoreDC (hDC, nSavedDC);
    	if (!isDisposed () && !item.isDisposed ()) {
    		if (columnCount == 0) {
    			int width = OS.SendMessage (handle, OS.LVM_GETCOLUMNWIDTH, 0, 0);
    			if (event.x + event.width > width) {
    				OS.SendMessage (handle, OS.LVM_SETCOLUMNWIDTH, 0, event.x + event.width);
    			}
    		}
    		if (event.height > getItemHeight ()) setItemHeight (event.height);
    	}
    	return event;
    }

    A mon avis, on peut qu'augmenter la taille de la cellule.

    Pour plus d'informations, voir le lien ci-dessous:
    http://dev.eclipse.org/newslists/new.../msg43861.html

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    J'ai choisi de faire la solution suivante:
    • Soit j'augmente la hauteur de lignes
    • soit je remet la hauteur à zéro(cad la taille initiale)

Discussions similaires

  1. Agrandir la hauteur des lignes dans une Table
    Par kkt8 dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 13/08/2013, 15h56
  2. [VBA] Supprimer des lignes dans une table
    Par shadockgreg dans le forum Access
    Réponses: 6
    Dernier message: 22/11/2006, 09h58
  3. Réponses: 14
    Dernier message: 22/09/2005, 16h49
  4. Ajout/Suppression dynamique des lignes dans une table
    Par codexomega dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/08/2005, 18h50

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