[SWT] Zusätzlicher Button im Dialog nach links verschieben

L

lowskilla

Hallo,

ich habe folgendes Problem:

Ich habe eine Klasse, welche von Dialog ableitet. In meiner createButtonsforButtonBar-Methode habe ich 2 Buttons erstellt. Ein Close und ein "Details"-Button. Mein Close-Button befindet sich ganz rechts in der Buttonbar, der Details-Button soll jedoch nach ganz links verschoben werden.

Hier jedoch erstmal der Code:

Java:
 protected void createButtonsForButtonBar(Composite parent)
    {
        createButton(parent, IDialogConstants.DETAILS_ID, IDialogConstants.SHOW_DETAILS_LABEL, false);
        createButton(parent, IDialogConstants.OK_ID, IDialogConstants.CLOSE_LABEL, true);

        // super.createButtonsForButtonBar(parent);
    }

Wie bekomme ich den Details-Button nach ganz links? Meine einzige Idee wäre bisher "Dummy-Buttons", also unsichtbare Buttons zu erstellen, damit der Platz in der Mitte "gefüllt" wird, da alle anderen Dinge die ich bisher ausprobiert habe nicht funktioniert haben. Weiß jemand Rat? Schonmal vielen Dank!
 
Hallo,

erstmal danke für die Antwort. Leider hilft mir das nicht wirklich weiter, da ich die Swing LayoutManager nicht mit SWT/JFace kombinieren kann. Bzw. es wäre den Aufwand nicht wert ;)

Soweit ich das in Erfahrung bringen konnte, wird standardmäßig ein GridLayout bei der Buttonbar verwendet.

Gibt es weitere Ideen? Würde mich doch stark wundern, wenn ich der erste wäre, der einen Button ganz links haben möchte ;)

Schonmal danke für weitere Antworten!
 
Also in diese Methode scheinst du ja ganz normal auch wieder Composite reinlegen können. Meine Idee wäre nun eine extra Composite zu erstellen, und in dieser dann die Buttons zu erstellen (via GridLayout)

Java:
parent.setLayout(new GridLayout(1, false));

Composite cButtonbar = new Composite(parent, SWT.NONE); /* Extra Composite */
cButtonbar.setLayout(new GridLayout(2, false)); /* Für 2 Buttons */
cButtonbar.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
	
Button bLeft = new Button(cButtonbar, SWT.PUSH); /* Linker Button */
bLeft.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));
bLeft.setText("Links");
		
Button bRight = new Button(cButtonbar, SWT.PUSH); /* Rechter Button */
bRight.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, true, false));
bRight.setText("Rechts");

Gruß,
Jens
 

Neue Beiträge

Zurück