Si j'ai un champ de texte avec SWT, comment puis-je obtenir le champ pour remplir à 100% ou une certaine largeur spécifiée.Comment faire pour que les champs de texte remplissent 100% horizontalement
Par exemple, ce champ de texte atteindra seulement autant horizontalement.
public class Tmp {
public static void main (String [] args) {
Display display = new Display();
Shell shell = new Shell (display);
GridLayout gridLayout = new GridLayout();
shell.setLayout (gridLayout);
Button button0 = new Button(shell, SWT.PUSH);
button0.setText ("button0");
Text text = new Text(shell, SWT.BORDER | SWT.FILL);
text.setText ("Text Field");
shell.setSize(500, 400);
//shell.pack();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}
Le constructeur GridData (int) est obsolète. Utilisez "new GridData (SWT.FILL, SWT.CENTER)" à la place – qualidafial
Vous ne devez pas réutiliser les objets GridData car ils servent de cache pour les calculs de la cellule. La réutilisation de GridData peut conduire à des bogues de mise en page où plusieurs composants partageant une GridData commune sont tronqués à la taille de la plus petite. Ceci est dans le javadoc de GridData. – christopheml
Cela semble faux maintenant (peut-être que l'API a changé?), Le constructeur [GridData (int largeur, int hauteur) '] (http://help.eclipse.org/juno/index.jsp?topic=%2Forg. eclipse.platform.doc.isv% 2Freference% 2Fapi% 2Forg% 2Feclipse% 2Fswt% 2Flayout% 2FGridData.html) définit des dimensions minimales et ne peut pas être utilisé avec ces constantes SWT. – Kapep