2017-06-06 6 views
0

Je développe un plugin eclipse dans lequel je voulais afficher un label et une barre de progression. Mais malheureusement, je suis incapable de changer leur taille. Quelle que soit la taille je mentionne dans l'attribut setBounds de label et progressBar, donne moi les coordonnées: Rectangle {3, 3, 70, 15} et {rectangle 3, 21, 170, 17}eclipse plugin setBounds attribut ne fonctionne pas

ci-dessous est mon code de gestionnaire:

private ProgressBar progressBar; 
@Override 
public Object execute(ExecutionEvent event) throws ExecutionException { 

     Display display = Display.getDefault(); 

     Shell p_shell = new Shell(display,SWT.DIALOG_TRIM); 

     p_shell.setText("Translating.."); 

     p_shell.setLayout(new RowLayout(SWT.VERTICAL)); 

     p_shell.setSize(250, 70); 

     Label label = new Label(p_shell, SWT.NONE); 

     label.setBounds(10, 20, 180, 20); 
     //LINE 101 gives Rectangle {3, 3, 70, 15} 

     label.setText("Please wait ..."); 

     progressBar = new ProgressBar(p_shell, SWT.SMOOTH); 

     //progressBar.setBounds(10, 50, 200, 20); 
     //LINE 100 gives Rectangle {3, 21, 170, 17} 

     progressBar.setBounds(new Rectangle(5, 30, 150, 10)); 
     //LINE 100 gives Rectangle {3, 21, 170, 17}   

     progressBar.setMinimum(30); 

     progressBar.setMaximum(100); 

     p_shell.open(); 

     System.out.println("progress bar ==> " + progressBar.getBounds());//LINE 100 

     System.out.println("label ==> " + label.getBounds());//LINE 101 


     while(!p_shell.isDisposed()){ 

      if(!display.readAndDispatch()){ 
       display.sleep(); 
      } 
     } 
     } 

Je suis incapable de procéder further.Any De l'aide serait grandement appréciée.

+0

null votre setLayout. mais ce n'est pas une bonne pratique. – msagala25

Répondre

2

Vous ne pouvez pas mélanger une mise en page avec setBounds - la disposition remplacera les limites. Si vous supprimez le setLayout les limites fonctionneront.

Toutefois, l'utilisation de setBounds est susceptible de vous causer des problèmes sur différents écrans, vous devriez donc essayer de faire en sorte que cela fonctionne en utilisant des mises en page sans setBounds.

Notez également que les assistants Eclipse, Jobs et d'autres éléments fournissent déjà des indicateurs de progression standard.

+0

Merci ... Elle fonctionne maintenant.Mais j'ai un doute.Comment faire une interface utilisateur de plugin indépendante de la taille de l'écran? – adi

+1

Comme je l'ai dit, utilisez Layouts - [Understanding Layouts] (https://www.eclipse.org/articles/Article-Understanding-Layouts/Understanding-Layouts.htm). Ne pas oublier d'accepter la réponse si elle a résolu votre problème. –