SWT layout problem - Polsterung für labels möglich?
Ich bin mit GridLayout in meinem SWT-GUI-app. Ich habe Folgendes GridData definiert für jede grid-Zelle. Die grid-Zelle selbst ist nur ein label.
GridData gridData = new GridData();
gridData.horizontalAlignment = GridData.FILL;
gridData.grabExcessHorizontalSpace = true;
gridData.grabExcessVerticalSpace = true;
gridData.heightHint = 25;
gridData.widthHint = 25;
gridData.verticalAlignment = GridData.VERTICAL_ALIGN_CENTER;
gridData.verticalIndent = 10;
Und ich erstelle jedes Label-element wie das -
Label l = new Label(shell, SWT.BORDER);
l.setAlignment(SWT.CENTER);
l.setText("some text");
l.setLayoutData( gridData );
Nun Mein problem ist, trotz der Verwendung von verticalAlignment-Eigenschaft, verticalIndent Eigentum und setAlignment auf die Bezeichnung selbst, ich bin nicht in der Lage, um den text ausrichten vertikal zentriert mit Bezug auf die Rasterzelle Fläche ( 25 x 25 ). Ich glaube, ich bin etwas fehlt. Wie kann ich erreichen, das vertikal zentrierte Ausrichtung in einem grid-Zelle ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es keine setVerticalAlignment() auf ein Etikett, und wenn Sie die Höhe, mit der heightHint in der LayoutData, wird die Größe des Steuerelements und effektiv, das Sie von der Einstellung in der Mitte. Ein workaround wäre, die Beschriftung zu einem Verbund mit der Größe, die Sie wollen und dann Mitte der Steuerung. E. g.
CLabel? Warum nicht Sie es verwenden?
Selbst, die Sie verwenden können, leftMargin, rightMargin, topMargin, bottomMargin.
( Tut mir Leid für die, die nach 3 Jahre später )
Ich auch kämpfen mit diesem Problem.
Label
unterstützt keine Polsterung. Ich aufgewickelt mitStyledText
statt.Diese hat den trick für mich.