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 :

centrage des colonnes d'un TableViewer


Sujet :

SWT/JFace Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 15
    Par défaut centrage des colonnes d'un TableViewer
    Bonjour,

    Je ne parviens pas à bien centrer le contenu des cellules de mon TableViewer. Ce que je ne comprends pas, c'est que seule la première colonne pose problème. Et pourtant, je crée un TableViewer ultra-simple.

    Voilà le ViewPart qui fait ça :
    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
    public class TableView extends ViewPart {
     
    	public static final String ID = "sandBoxPlugin.view";
     
    	private TableViewer viewer;
     
    	private Table table;
     
    	@Override
    	public void createPartControl(Composite parent) {
    		this.table = new Table(parent, SWT.NONE);
    		this.table.setLinesVisible(true);
     
    		for (int i = 0; i < 3; i++) {
    			TableColumn column = new TableColumn(this.table, SWT.NONE);
    			column.setWidth(50);
    			column.setAlignment(SWT.CENTER); // ne marche pas sur la 1re colonne ?!
    		}
     
    		this.viewer = new TableViewer(this.table);
    		this.viewer.setContentProvider(new IStructuredContentProvider() {
     
    			public Object[] getElements(Object inputElement) {
    				return (Object[]) inputElement;
    			}
     
    			public void dispose() {
    			}
     
    			public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
    			}
     
    		});
     
    		this.viewer.setLabelProvider(new ITableLabelProvider() {
     
    			public Image getColumnImage(Object element, int columnIndex) {
    				return null;
    			}
     
    			public String getColumnText(Object element, int columnIndex) {
    				Object[] data = (Object[]) element;
    				return data[columnIndex].toString();
    			}
     
    			public void addListener(ILabelProviderListener listener) {
    			}
     
    			public void dispose() {
    			}
     
    			public boolean isLabelProperty(Object element, String property) {
    				return false;
    			}
     
    			public void removeListener(ILabelProviderListener listener) {
    			}
     
    		});
     
    		Object[][] data = new Integer[][] {
    				{1,2,3},
    				{4,5,6},
    				{7,8,9}
    		};
    		this.viewer.setInput(data);
    	}
     
    	@Override
    	public void setFocus() {
    	}
     
    }

  2. #2
    Membre chevronné Avatar de desert
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 414
    Par défaut
    On ne peut malheureusement pas centrer la première colonne d'un TableViewer. Tu peux toujours ruser en créant une première colonne et la rendre invisible en lui attribuant une largeur de 0. Ta première colonne avec données sera donc en réalité la deuxième.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 15
    Par défaut
    Roooh, j'aurais espéré éviter ça. En tous cas ça marche, merci. À tout hasard, sais-tu si c'est un bug ou un choix de design ?

    edit: En passant ça m'a aussi permis de "désactiver" la sélection.

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2006
    Messages : 218
    Par défaut
    Citation Envoyé par brasinamical Voir le message
    À tout hasard, sais-tu si c'est un bug ou un choix de design ?
    Bonjour,

    Ce n'est pas vraiment un bug, c'est... une limitation de Windows (si, si...)

    Quand on est habitué à la souplesse des Tables sous SWING, on pleure un peu avec SWT car on limité par le système sous-jacent...

    On ne peut pas tout avoir

    a+

    Laurent

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 15
    Par défaut
    Ah, ben si c'est Windows, je ne peux plus faire grand chose, en effet. En tous merci pour vos réponses.

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

Discussions similaires

  1. [JTable] les noms des colonnes de s'affichent pas
    Par macben dans le forum Composants
    Réponses: 6
    Dernier message: 25/04/2008, 11h03
  2. DBGrid : enregister la position des colonnes
    Par Harry dans le forum Bases de données
    Réponses: 8
    Dernier message: 21/07/2004, 21h27
  3. [VB6] Datagrid afficher ou cacher des colonnes par code
    Par soazig dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 06/02/2003, 17h19
  4. Dimensions des colonnes d'un TDBGrid
    Par osmose22 dans le forum C++Builder
    Réponses: 4
    Dernier message: 11/12/2002, 11h27

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