[SWT] Problème d'affichage de texte

Problème d'affichage de texte [SWT] - Java - Programmation

Marsh Posté le 24-05-2006 à 09:21:41    

Bonjour à tous,
 
 
J'utilises Eclipse RCP (SWT, mais j'ai repéré un problème qui m'ennuie pamal pour réaliser mes tests.  
 
En effet, lorsque je lance l'application à partir d'Eclipse, sur n'importe quelle vue, si j'affiche du texte dans un label, je ne vois le texte qu'au bout d'une dizaine de minutes.
Entre ce lapse de temps, aucun texte ne s'affiche sauf ceux qui sont dans des boutons. De même, dans des combo, je vois le champ selectionné, mais tous les autres champs ne s'affichent qu'au bout de 10min environ.
 
Savez vous comment je peux régler ce problème ? Sachant que je n'ai aucune erreur dans le programme.

Reply

Marsh Posté le 24-05-2006 à 09:21:41   

Reply

Marsh Posté le 24-05-2006 à 18:58:03    

Ici aussi j'ai le même problème. J'ai attendu une bonne dizaine de minute et je n'ai toujours pas vu ton code. [:spamafote]

Reply

Marsh Posté le 07-06-2006 à 09:20:49    

Si je n'ai pas montré de portions de code, c'est que je ne pense pas que ce soit un probleme de code (je peux prendre n'importe quel exemple tout fait, j'ai ce probleme..).
 
Mais vu que tu y tiens.
 
 
Ma perspective :
 

Citation :

public class Perspective implements IPerspectiveFactory {
 
 public void createInitialLayout(IPageLayout layout) {
  layout.setEditorAreaVisible(false);
  layout.setFixed(true);
   
  layout.addView(PwfViewRechercheClient.ID_VIEW, IPageLayout.TOP, 1.0f, IPageLayout.ID_OUTLINE);
  layout.addView(PwfViewCAC40.ID_VIEW, IPageLayout.TOP, 0.7f, IPageLayout.ID_EDITOR_AREA);
  layout.addView(PwfViewCalculetteEuro.ID_VIEW, IPageLayout.BOTTOM, 0.3f, IPageLayout.ID_EDITOR_AREA);
 }
}


 
 
Ma vue :  
 

Citation :

public class PwfViewCalculetteEuro extends ViewPart {
     
    public static final String ID_VIEW = "...";
 
    /**
     * CONSTRUCTEUR
     *  
     */
    public PwfViewCalculetteEuro() {
    }
     
    /*
     * (non-Javadoc)
     *  
     * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
     */
    public void createPartControl(Composite parent) {
  Composite CalculetteEuro = new PwfCalculetteEuro(parent, SWT.NONE);
    }
   
    public void dispose(){
        super.dispose();
    }
     
 public void setFocus() {
 }
}


 
Mon composite :

Citation :

public class PwfCalculetteEuro extends Composite {
 
    private GridLayout layout_principal;
 
    private GridData gridData_data;
    private Label label_convertisseur;
    private Text text_euro;
    private Label label_euro;
    private Text text_francs;
    private Label label_francs;
    private Button button_calculette;
 
    /**
     * CONSTRUCTEUR
     *  
     * @param parent
     * @param style
     */
    public PwfCalculetteEuro(Composite parent, int style) {
        super(parent, style);
        parent.setLayout(new FillLayout());
        //aVue.setName("Convertisseur EURO - FRANCS" );
        initGUI();
        initEvent();
    }
 
    /*
     * Initialise les composants pour les afficher à l'ecran
     */
    private void initGUI() {
        try {
            // layout
            layout_principal = new GridLayout();
            layout_principal.numColumns = 2;
            this.setLayout(layout_principal);
 
            // mise en place des widgets
 
            // label convertisseur
            label_convertisseur = new Label(this, SWT.NONE);
            label_convertisseur.setText("Convertisseur monétaire" );
            // invisible
            Label invisible = new Label(this, SWT.NONE);
 
            // EURO
            text_euro = new Text(this, SWT.BORDER | SWT.RIGHT);
            text_euro.setText("0.000" );
            gridData_data = new GridData();
            gridData_data.grabExcessHorizontalSpace = true;
            gridData_data.horizontalAlignment = GridData.FILL;
            text_euro.setLayoutData(gridData_data);
            // label
            label_euro = new Label(this, SWT.NONE);
            label_euro.setText("€" );
 
            // FRANCS
            text_francs = new Text(this, SWT.BORDER | SWT.RIGHT);
            text_francs.setText("0.000" );
            gridData_data = new GridData();
            gridData_data.grabExcessHorizontalSpace = true;
            gridData_data.horizontalAlignment = GridData.FILL;
            text_francs.setLayoutData(gridData_data);
            // label
            label_francs = new Label(this, SWT.NONE);
            label_francs.setText("Francs" );
             
            // Bouton
            button_calculette = new Button(this, SWT.NONE);
            button_calculette.setText("Afficher la calculatrice" );
            button_calculette.setLayoutData(new GridData(GridData.END, GridData.BEGINNING, true, false));
             
            this.layout();
             
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 
    private void initEvent() {
     
     button_calculette.addSelectionListener(new SelectionAdapter(){
      public void widgetSelected(SelectionEvent evt) {
       PwfThreadCalculette calc = new PwfThreadCalculette();
       calc.start();
            }
     });
     
        text_euro.addModifyListener(new ModifyListener() {
 
            public void widgetSelected(SelectionEvent evt) {
            }
 
            public void modifyText(ModifyEvent e) {
                if (text_euro.isFocusControl()) {
                    try {
                        float euro = Float.parseFloat(text_euro.getText());
                        text_francs.setText("" + ((float) Math.round(euro * 6.55957*1000)/1000));
                    } catch (Exception exception) {
                    }
                }
            }
        });
         
        text_francs.addModifyListener(new ModifyListener() {
 
            public void widgetSelected(SelectionEvent evt) {
            }
 
            public void modifyText(ModifyEvent e) {
                if (text_francs.isFocusControl()) {
                    try {
                        float francs = Float.parseFloat(text_francs.getText());
                        text_euro.setText("" + ((float) Math.round(francs / 6.55957 * 1000)/1000));
                    } catch (Exception exception) {
                    }
                }
            }
        });
    }
}


 
 
Mais quelque soit l'ex

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed