Question

J'utilise un TableViewer avec deux colonnes. Le premier doit contenir du texte et le second une image en fonction de l'état de l'objet. Le fournisseur d'étiquettes est un fournisseur de douane qui s'étend LabelProvider et les outils ITableLayoutProvider.

Lorsqu'aucune image n'est affichée, la disposition est correcte et le texte de la première colonne est aligné à gauche.correct

Mais quand au moins une image s'affiche, le texte dans la première colonne est aligné quelque part entre droit et centre - semble un peu laid.

incorrect

La disposition est assez simple:

availableDevicesList = new TableViewer(this, SWT.SINGLE | SWT.BORDER
| SWT.FULL_SELECTION);
availableDevicesList.setContentProvider(new ArrayContentProvider());

Table table = availableDevicesList.getTable();
TableLayout tableLayout = new TableLayout();
table.setLayout(tableLayout);

table.setLinesVisible(true);

tableLayout.addColumnData(new ColumnWeightData(3));
new TableColumn(table, SWT.LEFT);
tableLayout.addColumnData(new ColumnWeightData(1));
new TableColumn(table, SWT.RIGHT);

Qu'est-ce qui cause ce problème?

Était-ce utile?

La solution

C'est un bug dans l'API Windows Voir le rapport SWT Bug. Il n'affecte que la première colonne du tableau, donc la solution de contournement officielle consiste à "sauter" la première colonne et à la définir sur une taille zéro (voir le dernier commentaire sur le rapport de bogue), mais sur la colonne de table Mac OS X ne peut pas avoir de taille zéro, donc il y aura de la visible Première colonne avec la taille 1 ou quelque chose comme ça.

Ouais, déteste aussi ce bug dans API Win.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top