Vaadin table continue de s'afficher des barres de défilement

J'ai un composant de Tableau à l'intérieur de certaines mises en page et je ne veux pas ça pour afficher des barres de défilement.

La table sera toujours montrer seulement 25 lignes et la largeur doit toujours être 720px. Cependant, le tableau de garde en montrant à la fois verticale et horizontale, barres de défilement, et je ne peux pas comprendre comment. Le plus drôle, c'est(même si je suis plutôt pleurer maintenant), que, parfois, les barres de défilement disparaître. Quand je suis en actualisant la page, parfois, ils disparaissent et tout est ok.

Voici quelques infos que j'ai recueillies après des heures de débogage:

  1. Parfois, les icônes/images/etc. ne sont pas chargés et sont affichés à partir d'espèces, parfois ils sont. Et devinez quoi, c'est aussi passer les barres de défilement sur et en dehors, bien que les images sont toujours affichés.
  2. La largeur de chaque colonne est parfois quelques pixels en plus - et c'est pourquoi la barre de défilement horizontale apparaît et je pense que c'est aussi pourquoi la barre de défilement verticale montre (parce que la horizontale prend quelques pixels de la hauteur de la table)
  3. J'ai essayé d'appeler requestRepaint après le remplissage de la table, même requestRepaintAll sur le composant parent, et sa mère, et sa mère, etc...
  4. J'ai essayé de réglage de la largeur de chaque colonne en pourcentage.
    100000.) Je pense avoir essayé toutes les autres choses entre 4 et 100000.

Je dois être en manque de quelque chose. Beaucoup de gens ont ce problème, et j'ai trouvé beaucoup de fils directement sur le vaadin page, mais il n'est pas PRÉSENT-CERTAINEMENT-d'ŒUVRES de la solution.

MODIFIER LE CODE:

Table t = new Table();
t.setWidth("720px");
t.setImmediate(true);
t.setSelectable(true);

//Headers
t.addContainerProperty("fullName", String.class,  null, "Meno", null, null);
t.setColumnExpandRatio("fullName", 22);

t.addContainerProperty("dateOfBirth", Date.class,  null, "Narodenie", null, null);
t.setColumnExpandRatio("dateOfBirth", 18);

t.addContainerProperty("lastYearCosts", BigDecimal.class,  null, "Náklady", null, null);
t.setColumnExpandRatio("lastYearCosts", 10);

t.addContainerProperty("lastYearBalance", BigDecimal.class,  null, "Saldo", null, null);
t.setColumnExpandRatio("lastYearBalance", 10);

t.addContainerProperty("activeClient", ComparableBooleanEmbeddedIcon.class,  null, "", new ThemeResource("icons/icon-app-header-medipartner.png"), Table.ALIGN_CENTER);
t.setColumnExpandRatio("lastYearBalance", 8);

t.addContainerProperty("dmsCount", String.class,  null, "", new ThemeResource("icons/icon-app-header-heart.png"), null);
t.setColumnExpandRatio("dmsCount", 8);

t.addContainerProperty("authCount", String.class,  null, "", new ThemeResource("icons/icon-app-header-warnings.png"), null);
t.setColumnExpandRatio("authCount", 8);

t.addContainerProperty("book", CssLayout.class,  null, "Objednať", null, Table.ALIGN_CENTER);
t.setColumnExpandRatio("book", 16);

Puis, je suis juste en remplissant les lignes avec addItem(Object []).

un peu de code , une capture d'écran ou une démonstration en direct en aide.
J'ai ajouté le code de l'échantillon
Je trouve aussi décevant que, parfois, les ascenseurs apparaissent pour certains contrôles dans Vaadin. Essayez d'attraper la problématique <div> avec Firebug et partager vos découvertes.
Eh bien, c'est le problème. Tous les éléments de mise en page ont le droit de largeur. Même l'élément de la table (je parle de la <div> wrapper) a la largeur désirée. Mais la <table> élément à l'intérieur de la largeur de 731px parfois. C'est pourquoi de défilement apparaît.
avez-vous un thème personnalisé dans votre application. Souvent, lorsque vous obtenez plus de barres vous sont thématisation quelque chose d'une manière qui n'est pas pris en charge. Essayez d'ajouter à la fin de votre url de l'application ?theme=le renne et de voir si vous avez encore des barres de défilement.

OriginalL'auteur Filip Majernik | 2012-02-16