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 :

table virtuel : fill horizontal mais pas vertical


Sujet :

SWT/JFace Java

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 421
    Points : 189
    Points
    189
    Par défaut table virtuel : fill horizontal mais pas vertical
    bonjour,

    j'utilise une table virtuel contenant enormement d'item dont c'est le but.
    le hic, c'est que la table prend le plus de place possible, en horizontal, c'est normal , mais en vertical, elle affiche tout les item, et donc, le virtual ne sert a rien !!!

    y a t il un moyen de dire doit prendre le plus de place possible en horisontal, mais en vertical, tu n'affiche que 10 lignes.

    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
     
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.layout.GridLayout;
    import org.eclipse.swt.widgets.Composite;
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.Event;
    import org.eclipse.swt.widgets.Listener;
    import org.eclipse.swt.widgets.Shell;
    import org.eclipse.swt.widgets.Table;
    import org.eclipse.swt.widgets.TableItem;
     
    public class testframe {
    	static int count = 0;
     
    	public static void main(String[] args) {
    		final Display display = new Display();
    		Shell shell = new Shell(display);
    		shell.setLayout(new GridLayout(1, false));
     
     
    		final Table table = new Table(shell, SWT.BORDER | SWT.VIRTUAL
    				| SWT.V_SCROLL);
    		table.addListener(SWT.SetData, new Listener() {
    			public void handleEvent(Event e) {
    				TableItem item = (TableItem) e.item;
    				count++;
    				item.setText("Item " + count);
    			}
    		});
    		table.setItemCount(1000000);
    		shell.open();
    		while (!shell.isDisposed()) {
    			if (!display.readAndDispatch())
    				display.sleep();
    		}
    		display.dispose();
    	}
    }
    l'exemple ici, le pere c'est le shell, mais dans l'application le composite table est dans un autre composite quelquonque. (et on peut creer un composite intermediaire si necessaire.).

    j'ai essayer le computeSize mais cela me renvoi la taille dont le composite a besoin et non la table de la place qu'elle a.

    j'ai essayer getparent().getsize() mais c'est toujours 0

    Autre choses, je suis obliger d'utiliser swt et non jface.


    voila, si qqn a une idée.

    merci

    a+

  2. #2
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    Salut,

    Tu devrais essayer d'ajouter un GridData à ton Table... Déjà ça serait plus conforme à l'utilisation de ton Layout et ensuite, ça pourrait résoudre ton problème:

    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
        static int count = 0;
     
        public static void main(final String[] args) {
            final Display display = new Display();
            Shell shell = new Shell(display);
            shell.setLayout(new GridLayout(1, false));
            shell.setSize(400, 400);
     
            final Table table =
                new Table(shell, SWT.BORDER | SWT.VIRTUAL | SWT.V_SCROLL);
            final GridData layoutData =
                new GridData(SWT.FILL, SWT.TOP, true, false);
            layoutData.heightHint = 300;
            table.setLayoutData(layoutData);
            table.addListener(SWT.SetData, new Listener() {
     
                public void handleEvent(final Event e) {
                    TableItem item = (TableItem) e.item;
                    count++;
                    item.setText("Item " + count);
                }
            });
            table.setItemCount(1000000);
            shell.open();
            while (!shell.isDisposed()) {
                if (!display.readAndDispatch()) {
                    display.sleep();
                }
            }
            display.dispose();
        }
    Si tu recherches des morceaux de code SWT/JFace, jette un œil ici.

    Voilà, à+
    Gueritarish
    Pas de questions technique par MP, les forums sont là pour ça.

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 421
    Points : 189
    Points
    189
    Par défaut
    merci

    je vais essayeer tout cela

Discussions similaires

  1. Bloquer ou supprimer la scroll bar horizontale mais pas vertical
    Par Epica84 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 02/03/2010, 21h03
  2. [AC-2007] Réattacher les tables - ok avec .mdb mais pas avec .accdb
    Par curt dans le forum Runtime
    Réponses: 1
    Dernier message: 30/04/2009, 17h15
  3. Overflow auto vertical mais pas horizontal
    Par yuukuari dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 28/05/2007, 02h27
  4. Réponses: 18
    Dernier message: 26/07/2006, 14h51
  5. Réponses: 3
    Dernier message: 14/03/2006, 11h34

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