2017-05-16 18 views
1

SWTを使用してUIにScrolledCompositeを配置しようとしています。 しかし、今は空白の領域や何かが間違っているだけです。UI、Java、SWTを使用してScrollを表示するにはどうすればよいですか?

領域ScrolledCompositeコードないブランクであることを示すために、 "optionCompositeAtLeft.setSize(optionCompositeAtLeft.computeSize(SWT.DEFAULT、SWT.DEFAULT));"

これは、スクリーンショットのPICです。 optionTabが enter image description here

とコードで....スクロールとボタンを持っている必要があり、それはスクロールを示しているが、あまりにも長い間、高さと幅が狭いです。 どういうわけか、上部はなくなりましたが、スクロールが消えるウィンドウのサイズを広げると戻ってきます。

enter image description here

私はそれが簡単にあなたのために参照できるようにすることの背景赤の色を設定します。 誰でも "optionCompositeAtLeft"をScrolledCompositeに埋め込むことができますか? オプションタブの左側の領域を、「optionCompositeAtLef」の赤い背景で塗りつぶしてください。

以下は私のコードです。

あなたがコンテンツのサイズを変更する ScrolledCompositeを設定する必要が
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

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

Filled Background

+0

単に完璧なソリューション...ありがとう... –

関連する問題