2017-05-16 4 views
1

Ich versuche, eine ScrolledComposite auf meiner Benutzeroberfläche mit SWT zu setzen. aber jetzt zeigt es nur leeren Bereich oder etwas falsch.Wie kann ich Scroll auf meiner Benutzeroberfläche anzeigen, mit JAVA, SWT?

der Bereich, der ScrolledComposite ohne den Code leer ist, "optionCompositeAtLeft.setSize (optionCompositeAtLeft.computeSize (SWT.DEFAULT, SWT.DEFAULT));"

Dies ist das Bild von Bildschirm. Die optionTab sollten die Tasten mit Scroll haben .... enter image description here

und mit dem Code, es zeigt, blättern, aber zu lange Höhe und schmale Breite. Irgendwie ist das obere weg, aber komm zurück, wenn ich die Größe des Fensters mit Scroll verschwinden.

enter image description here

habe ich die Farbe des Hintergrundes rot es leichter zu machen, Sie zu sehen. Kann mir jemand helfen, "optionCompositeAtLeft" in ScrolledComposite zu füllen? Ich möchte, dass der linke Bereich der Registerkarte Option von "optionCompositeAtLef" mit einem roten Hintergrund ausgefüllt wird.

Unten ist mein Code.

private BomCloneDialog dialog = null; 
private TabFolder tabFolder = null; 
private TabItem tabOption = null; 

public CreateOptionTab(TabFolder tabFolder, TabItem tabOption) { 
    this.tabFolder = tabFolder; 
    this.tabOption = tabOption; 
} 

public void createOptionTabUI() { 
    GridData gdWithFillBoth = new GridData(GridData.FILL_BOTH); 

    Composite optionComposite = new Composite(tabFolder, SWT.NONE); 
    optionComposite.setLayout(new GridLayout(2, true)); 
    tabOption.setControl(optionComposite); 

    ScrolledComposite scrolledCompositeForOption = new ScrolledComposite(optionComposite,SWT.V_SCROLL | SWT.BORDER); 
    scrolledCompositeForOption.setLayoutData(gdWithFillBoth); 

    Composite optionCompositeAtLeft = new Composite(scrolledCompositeForOption, SWT.BORDER); 
    scrolledCompositeForOption.setContent(optionCompositeAtLeft); 
    optionCompositeAtLeft.setLayout(new GridLayout(1, true)); 
    optionCompositeAtLeft.setLayoutData(gdWithFillBoth); 
    optionCompositeAtLeft.setBackground(new Color(Display.getCurrent(), 255,0,0)); 

    Button b [] = new Button[30]; 
    for(int a=0; a<30; a++){ 
     b[a] = new Button(optionCompositeAtLeft, SWT.PUSH); 
     b[a].setText("button"+a); 
    } 
    **optionCompositeAtLeft.setSize(optionCompositeAtLeft.computeSize(SWT.DEFAULT, SWT.DEFAULT));** 




    Composite optionButtonComposite = new Composite(optionComposite, SWT.BORDER); 
    optionButtonComposite.setLayout(new GridLayout(1, true)); 
    optionButtonComposite.setLayoutData(gdWithFillBoth); 
    Button optionSaveButton = new Button(optionButtonComposite, SWT.NONE); 
    optionSaveButton.setLayoutData(gdWithFillBoth); 
    optionSaveButton.setText("Save"); 
    Button optionAddButton = new Button(optionButtonComposite, SWT.NONE); 
    optionAddButton.setLayoutData(gdWithFillBoth); 
    optionAddButton.setText("Add"); 

} 
+1

ich es nicht bekommen, was meinst du mit „set Vertikale Rolle mit stabiler Größe“? –

+0

Entschuldigung, dass ich dich verwirrt habe, ich möchte, dass der linke Bereich der Registerkarte Option mit einem roten Hintergrund von "optionCompositeAtLef" gefüllt wird. –

Antwort

1

Sie müssen ScrolledComposite konfigurieren, um den Inhalt, um die Größe:

scrolledCompositeForOption.setExpandHorizontal(true); 
scrolledCompositeForOption.setExpandVertical(true); 

Filled Background

+0

einfach perfekte lösung ... danke ... –

Verwandte Themen