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 :

Les problèmes de SashForm


Sujet :

SWT/JFace Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 7
    Par défaut Les problèmes de SashForm
    Bonjour,
    Je connais qu'on peut utiliser SashForm en SWT comme JSplitPane en SWING. Mais je sais pas comment afficher deux button arrow comme ceux dans la photo



    En SWING, on définit juste la valeur OneTouchExpandable - setOneTouchExpandable(true). Mais en SWT, j'arrive pas à le faire

    En suite, je crée un SashForm qui se compose un composite (radio et button) et un canvas. J'essaie de prolonger le canvas pour qu'il puisse se représenter entièrement dans le SashForm mais il reste toujours une partie du composite, je sais pas pourquoi? (Je sais qu'on peut appeler setMaximizedControl mais pourquoi on peut pas le faire à la main!)



    Encore une chose :p! Vous voyez la photo



    Je définis le weights 3,7 (3 pour le composite, 7 pour le canvas). Quand je prolonge l'écran, je veux la partie du composite qui reste toujours sa taille initiale (l'écran en bas). Il est possible à le faire?

    Si vous ne comprenez pas bien ce que je dit, s'il vous plaît de me demander (je parle pas bien en français
    Merci par avance ^^
    Bonne journée

  2. #2
    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
    Bonjour,

    Pour l'affichage des flèches (button arrow) en SWT, ce n'est pas possible, tout simplement !

    Pour le reste, tu peux le code de ta fenêtre que je regarde ?

    Laurent

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 7
    Par défaut
    Excusez-moi de mon retard! Voilà, c'est mon code (merci par avance ^^)
    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
     
    private void initGUI() {
    		try {
    			this.setLayout(new FormLayout());
    			this.setSize(406, 209);
    			{
    				sashForm1 = new SashForm(this, SWT.NONE);
    				FormData sashForm1LData = new FormData();
    				sashForm1LData.width = 406;
    				sashForm1LData.height = 209;
    				sashForm1LData.left =  new FormAttachment(0, 1000, 0);
    				sashForm1LData.top =  new FormAttachment(0, 1000, 0);
    				sashForm1LData.right =  new FormAttachment(1000, 1000, 0);
    				sashForm1LData.bottom =  new FormAttachment(1000, 1000, 0);
    				sashForm1.setLayoutData(sashForm1LData);
    				{
    					composite1 = new Composite(sashForm1, SWT.NONE);
    					GridLayout composite1Layout = new GridLayout();
    					composite1Layout.makeColumnsEqualWidth = true;
    					composite1.setLayout(composite1Layout);
    					composite1.setBounds(32, 39, 406, 209);
    					{
    						button1 = new Button(composite1, SWT.PUSH | SWT.CENTER);
    						button1.setText("button1");
    					}
    					{
    						button2 = new Button(composite1, SWT.PUSH | SWT.CENTER);
    						button2.setText("button2");
    					}
    				}
    				{
    					canvas1 = new Canvas(sashForm1, SWT.NONE);
    					canvas1.setBounds(5, 5, 64, 64);
    					canvas1.setBackground(SWTResourceManager.getColor(255, 128, 0));
    				}
    				sashForm1.setWeights(new int[] {4, 6});
    			}
    			this.layout();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}

  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
    Bonjour,

    Voici ta réponse pour une largeur de 406 (ajout d'un listener sur le shell)

    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
     
    private void initGUI() {
            try {
                this.setLayout(new FormLayout());
                this.setSize(406, 209);
                {
                    sashForm1 = new SashForm(this, SWT.NONE);
                    FormData sashForm1LData = new FormData();
                    sashForm1LData.width = 406;
                    sashForm1LData.height = 209;
                    sashForm1LData.left =  new FormAttachment(0, 1000, 0);
                    sashForm1LData.top =  new FormAttachment(0, 1000, 0);
                    sashForm1LData.right =  new FormAttachment(1000, 1000, 0);
                    sashForm1LData.bottom =  new FormAttachment(1000, 1000, 0);
                    sashForm1.setLayoutData(sashForm1LData);
                    {
                        composite1 = new Composite(sashForm1, SWT.NONE);
                        GridLayout composite1Layout = new GridLayout();
                        composite1Layout.makeColumnsEqualWidth = true;
                        composite1.setLayout(composite1Layout);
                        composite1.setBounds(32, 39, 406, 209);
                        {
                            button1 = new Button(composite1, SWT.PUSH | SWT.CENTER);
                            button1.setText("button1");
                        }
                        {
                            button2 = new Button(composite1, SWT.PUSH | SWT.CENTER);
                            button2.setText("button2");
                        }
                    }
                    {
                        canvas1 = new Canvas(sashForm1, SWT.NONE);
                        canvas1.setBounds(5, 5, 64, 64);
                        canvas1.setBackground(SWTResourceManager.getColor(255, 128, 0));
                    }
                    sashForm1.setWeights(new int[] {4, 6});
                }
                this.layout();
                this.addListener(SWT.Resize, new Listener() {
     
                    public void handleEvent(Event e) {
                        int percent = 406*100 / getSize().x;
                        if (percent <= 100) {
                            sashForm1.setWeights(new int[] {percent, 100-percent});
                        }
                    }});
     
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    Laurent

Discussions similaires

  1. [DirectX - C# - HLSL] Les problèmes d'Ingham
    Par Ingham dans le forum DirectX
    Réponses: 67
    Dernier message: 10/05/2007, 18h42
  2. Réponses: 1
    Dernier message: 24/05/2006, 20h47
  3. Comment gérer les problèmes de connexion sur un idFTP ?
    Par giloutho dans le forum Web & réseau
    Réponses: 2
    Dernier message: 05/12/2005, 18h42
  4. Question sur les problèmes d'allocation dynamique
    Par slylafone dans le forum C++
    Réponses: 23
    Dernier message: 25/10/2004, 14h18

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