2012-09-10 3 views
0

Используя окно вкладки и придавая оболочке фиксированный размер, как я могу сделать контент - значение всей оболочки - прокручивается, если места недостаточно? Является ли это настройкой оболочки, узла вкладки или отдельных вкладок?SWT/JFace, как сделать окно прокрутки прокрутки

ответ

2

Используйте ScrolledComposite, который содержит полное содержание. Таким образом, он будет прокручиваться, если не хватает места для его отображения.

Следующий код должен дать вам представление о том, как это работает:

public static void main(String[] args) { 
    final Display display = new Display(); 
    final Shell shell = new Shell(display); 
    shell.setLayout(new FillLayout()); 

    // Create the ScrolledComposite to scroll horizontally and vertically 
    ScrolledComposite scrolledComp = new ScrolledComposite(shell, SWT.H_SCROLL | SWT.V_SCROLL); 

    // Create a child composite for your content 
    Composite content = new Composite(scrolledComp, SWT.NONE); 
    content.setLayout(new FillLayout()); 

    // Create some content 
    new Button(content, SWT.PUSH).setText("Button1"); 
    new Button(content, SWT.PUSH).setText("Button2"); 

    // add content to scrolled composite 
    scrolledComp.setContent(content); 

    // Set the minimum size (in this case way too large) 
    scrolledComp.setMinSize(400, 400); 

    // Expand both horizontally and vertically 
    scrolledComp.setExpandHorizontal(true); 
    scrolledComp.setExpandVertical(true); 

    shell.pack(); 
    shell.open(); 
    while (!shell.isDisposed()) { 
     if (!display.readAndDispatch()) { 
      display.sleep(); 
     } 
    } 
    display.dispose(); 
} 

Выполнить это, уменьшить размер окна, и вы увидите полосы прокрутки.

+0

Еще раз, Comander Baz сэкономил день;) –

+0

@MarcusToepper Commander Baz имеет приятный звук, мне нравится: D Всегда рад, если я могу помочь. – Baz

Смежные вопросы