java - SWT - 使表格可滚动

标签 java eclipse-plugin swt jface

我试过下面的代码,表格显示时没有任何滚动条。请帮助使 SWT 表可以水平和垂直滚动。

    package snippet;

import org.eclipse.swt.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;

public class Snippet {

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

        createUI(shell);


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

    private static void createUI(Shell shell) {
        // TODO Auto-generated method stub
        GridLayout layout = new GridLayout(1, false);


        shell.setLayout(layout);


        Table table = new Table(shell, SWT.BORDER | SWT.FULL_SELECTION|SWT.CHECK|SWT.RESIZE|SWT.SCROLL_PAGE);
        GridData gd_table = new GridData(SWT.FILL, SWT.FILL, true, true);
        gd_table.heightHint = 136;
        gd_table.widthHint = 205;
        table.setLayoutData(gd_table);
        table.setHeaderVisible(true);
        table.setLinesVisible(true);

        TableColumn tblclmnNewColumn = new TableColumn(table, SWT.NONE);
        tblclmnNewColumn.setWidth(37);        

        TableColumn tblclmnNewColumn_1 = new TableColumn(table, SWT.NONE);
        tblclmnNewColumn_1.setWidth(219);
        tblclmnNewColumn_1.setText("Item ID");

        TableColumn tblclmnNewColumn_2 = new TableColumn(table, SWT.NONE);
        tblclmnNewColumn_2.setWidth(246);
        tblclmnNewColumn_2.setText("Revision ID");

        TableColumn tblclmnNewColumn_3 = new TableColumn(table, SWT.NONE);
        tblclmnNewColumn_3.setWidth(246);
        tblclmnNewColumn_3.setText("Vendor Name");

        TableColumn tblclmnNewColumn_4 = new TableColumn(table, SWT.NONE);
        tblclmnNewColumn_4.setWidth(246);
        tblclmnNewColumn_4.setText("Vendor ID");

        for(int i=0;i<10;i++)
        {
            TableItem item = new TableItem(table, SWT.NONE);

            item.setText(1,"item_id"+i);
            item.setText(2,"item_revision_id"+i);
            item.setText(3,"object_string"+i);
        }

    }

}

我尝试同时使用 SWT.SCROLL_PAGE 和 SWT.SCROLL_LINE。在此示例中,两者都给出了相同的结果。我缺少与 SWT 中的可滚动小部件相关的基本理解。请在这方面提供帮助。

最佳答案

您要查找的值是 SWT.V_SCROLLSWT.H_SCROLL。如果用这两个替换 Table 构造函数中的 SWT.SCROLL_PAGE 常量,您的代码将按预期工作。

Table table = new Table(shell, SWT.BORDER | SWT.FULL_SELECTION | SWT.CHECK | SWT.RESIZE | SWT.V_SCROLL | SWT.H_SCROLL);

关于java - SWT - 使表格可滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45329040/

相关文章:

java - 使用 CloudSolrClient 连接到 solrcloud 时出错

java - 如何下载 Eclipse 的源代码?

java - 热衷于在 swt 中将 ExpandableComposite 添加到 StyledText

java - SWT - 在对话框关闭时删除 ListChangeListener

java - eclipseoxy中的 cucumber eclipse插件

java - 当filtertext为空时展开Jface FilteredTree上的所有项目

java - ObjectOutput/InputStream的上下文切换

java - 如何将复杂的java对象(嵌套映射和列表)从一个apache nifi处理器传递到另一个?

java - 读取 "yyyy-MM-dd' T'HH :mm:ss. SSSSSSZZZZZ 时 java.text.SimpleDateFormat 的错误输出”

java - 在哪里可以找到 Eclipse 插件开发的设计模式和最佳实践