Как включить полосу прокрутки в таблице затмений - PullRequest
1 голос
/ 23 февраля 2012

Я создал таблицу с множеством строк.когда я запускаю это, он отображает все строки в одном большом окне.как я должен ограничить количество строк, которые отображаются в таблице и имеют вертикальную полосу прокрутки для просмотра других строк.

Я попытался вызвать setBounds и setSize для таблицы.Но он по-прежнему показывает все строки в одном большом окне.

        Display display = new Display();
        Shell shell = new Shell(display);
        shell.setLayout(new GridLayout(1, true));
        Table table = new Table(shell, SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER);
        table.setBounds(0, 0, 100, 100);
        for (int i=0; i<4; i++) {
             TableColumn column = new TableColumn (table, SWT.NONE);
             column.setText ("Column " + i);
        }
        for(int i = 0; i < table.getColumnCount(); i++) {
             table.getColumn(i).setWidth(150);
        }
        for(int i = 0; i < 50; i++){
            TableItem item = new TableItem(table,SWT.NONE);
            item.setText(new String[]{"Item " + i,"Item " + i,"Item " + i,"Item " + i});
        }
        shell.pack();
        shell.open();
        while (!shell.isDisposed()) {
          if (!display.readAndDispatch())
            display.sleep();
        }
        display.dispose();

1 Ответ

1 голос
/ 23 февраля 2012
Table table = new Table(shell, SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER);
table.setLayoutData(GridDataFactory.swtDefault().hint(100, 100).create());

Вы не можете установить размер вашей таблицы с помощью setBounds(), потому что это макет Composite, содержащий таблицу, которая устанавливает положение и размер таблицы. Посмотрите следующую ссылку для получения полезной информации о разметке SWT: http://www.eclipse.org/articles/article.php?file=Article-Understanding-Layouts/index.html

...