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

GWT et Vaadin Java Discussion :

Aligner les cases d'un composite widget excel fait à base de flexTable


Sujet :

GWT et Vaadin 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
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 12
    Par défaut Aligner les cases d'un composite widget excel fait à base de flexTable
    Salut tout le monde,

    Ca fait mnt une semaine que j'essaie de trouver une solution pour aligner les cases d'un composite widget excel que j'ai fait à base d'un flextable. En fait, chaque colonne de mon excel est un ensemble de widget de meme type(chexkbox, textInput, ) et je dois aligner mes colonnes pour qu'il aient la meme largeur, sachant que chaque ligne est un horizantalPanel qui contient les widgets qui appartiennent à la meme ligne. Je c que c un petit peu nase comme facon pour faire un excel, mais j'ai pas en fait bcp de choix...

    ma question: est ce qu'il ya un moyen pour aligner les colonnes de mon widget excel. J'ai essayé plusieurs méthodes(setWidth,setCellWidth..), mais aucune n'aligne parfaitement les cases comme ds un vrai excel.

    Merci d'avance pour votre aide,

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 952
    Par défaut
    Voici ma méthode :
    je fonctionne par cellule non pas par ligne.
    chaque widget que je veux intégrer est d'abord intégré à un panneau de taille fixe et c'est ce panneau qui est intégré au flex table

    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
     
    package org.yournamehere.client;
     
    import com.google.gwt.core.client.EntryPoint;
    import com.google.gwt.user.client.Window;
    import com.google.gwt.user.client.ui.CheckBox;
    import com.google.gwt.user.client.ui.FlexTable;
    import com.google.gwt.user.client.ui.HorizontalPanel;
    import com.google.gwt.user.client.ui.Label;
    import com.google.gwt.user.client.ui.RadioButton;
    import com.google.gwt.user.client.ui.RootPanel;
    import com.google.gwt.user.client.ui.TextBox;
    import com.google.gwt.user.client.ui.VerticalPanel;
    import com.google.gwt.user.client.ui.Widget;
     
     
    public class MainEntryPoint implements EntryPoint {
     
        /** Creates a new instance of MainEntryPoint */
        public MainEntryPoint() {
        }
     
        /**
         * The entry point method, called automatically by loading a module
         * that declares an implementing class as an entry-point
         */
        public void onModuleLoad() {
            try{
            FlexTable ft =new FlexTable();
            ft.setBorderWidth(1);
            for(int i=0;i<10;i++){
                ft.insertRow(i);
                for(int j=0;j<5;j++){
                    ft.insertCell(i, j);
                    int a=(int)(Math.random()*100);
                    Widget w=null;
                    if(a%3==0){
                        w=new CheckBox("<b>label</b>",true);
                    }
                    if(a%3==1){
                        VerticalPanel vp=new VerticalPanel();
                        vp.add(new Label("texte : "));
                        vp.add(new TextBox());
                        w=vp;
                    }
                    if(a%3==2){
                        HorizontalPanel hp=new HorizontalPanel();
                        hp.add(new RadioButton("test", "oui"));
                        hp.add(new RadioButton("test", "non"));
                        w=hp;
     
                    }
     
                    ft.setWidget(i,j,new PanelFlexTable(w));
                }
            }
            RootPanel.get().add(ft);}
            catch(Exception ex){
                Window.alert("erreur : \n"+ex.getMessage());
            }
        }
     
        public class PanelFlexTable extends VerticalPanel{
           PanelFlexTable(Widget w){
                this.add(w);
                this.setSize("150px","60px");
            }
    }
     
    }
    Cependant il faut faire attention à ce que les widget ne dépassent pas la taille du panneau en largeur (150px ici)

Discussions similaires

  1. [XL-2013] Besoin d'aide VBA Excel sur les cases a cocher
    Par Mel_38 dans le forum Excel
    Réponses: 4
    Dernier message: 16/05/2014, 15h02
  2. [HTML 4.0] Comment aligner les cases textes d'un formulaire ?
    Par Santcho dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 08/06/2010, 08h34
  3. Aligner les widgets
    Par Jiyuu dans le forum wxPython
    Réponses: 3
    Dernier message: 08/05/2008, 11h58
  4. [VB.NET] Datagrid + CheckBox : Cocher toutes les cases
    Par sirex007 dans le forum ASP.NET
    Réponses: 5
    Dernier message: 24/05/2004, 15h33
  5. [EXCEL]Modifier les marges d'une page dans Excel
    Par ms91fr dans le forum Composants VCL
    Réponses: 4
    Dernier message: 06/01/2004, 15h26

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