2017-05-16 52 views
1

我想把我的用戶界面與SWT ScrolledComposite。 但現在它只顯示空白區域或錯誤。如何使用JAVA,SWT在我的UI上顯示滾動?

的面積,以顯示ScrolledComposite是空白沒有代碼, 「optionCompositeAtLeft.setSize(optionCompositeAtLeft.computeSize(SWT.DEFAULT,SWT.DEFAULT));」

這是屏幕截圖的PIC。 的optionTab應具有按鈕與滾動.... enter image description here

並用的代碼,它示出了滾動,但過長的高度和寬度較窄。 不知何故,鞋面不見了,但當我用滾動消失的方式擴展窗口的大小時會回來。

enter image description here

我設置背景紅色的顏色,使其更容易看到你。 任何人都可以幫我做「optionCompositeAtLeft」填寫在ScrolledComposite? 我希望選項選項卡的左側區域填充「optionCompositeAtLef」的紅色背景。

以下是我的代碼。

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

我不明白,你是什麼意思與「設置垂直滾動尺寸穩定」? –

+0

對不起,我讓你感到困惑,我希望選項選項卡的左側區域填充「optionCompositeAtLef」的紅色背景。 –

回答

1

您需要配置ScrolledComposite來調整內容:

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

Filled Background

+0

簡單完美的解決方案...謝謝... –

相關問題