首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JFace TableViewer:用内容填充表

JFace TableViewer:用内容填充表
EN

Stack Overflow用户
提问于 2014-05-15 07:45:46
回答 1查看 918关注 0票数 0

我想弄清楚JFace的结构元素是如何工作的。我做了以下简单的界面:

代码语言:javascript
复制
protected Control createContents(Composite parent)
{
    Composite container = new Composite(parent, SWT.NONE);
    container.setLayout(new FillLayout(SWT.HORIZONTAL));

    TableViewer tableViewer = new TableViewer(container, SWT.BORDER | SWT.FULL_SELECTION);
    table = tableViewer.getTable();
    table.setLinesVisible(true);
    table.setHeaderVisible(true);

    tableViewer.setContentProvider(ArrayContentProvider.getInstance());
    tableViewer.setInput(new String[][]{{"1", "2", "3"},{"1", "2", "3"},{"1", "2", "3"}});

    TableViewerColumn tableViewerColumn = new TableViewerColumn(tableViewer, SWT.NONE);
    TableColumn tblclmnTest = tableViewerColumn.getColumn();
    tblclmnTest.setWidth(58);
    tblclmnTest.setText("Test1");
    tableViewerColumn.setLabelProvider(new ColumnLabelProvider()
    {
        @Override
        public String getText(Object element)
        {
            return super.getText(((String[])element)[0]);
        }
    });

    TableViewerColumn tableViewerColumn2 = new TableViewerColumn(tableViewer, SWT.NONE);
    TableColumn tblclmnTest2 = tableViewerColumn2.getColumn();
    tblclmnTest2.setWidth(58);
    tblclmnTest2.setText("Test2");
    tableViewerColumn2.setLabelProvider(new ColumnLabelProvider()
    {
        @Override
        public String getText(Object element)
        {
            return super.getText(((String[])element)[1]);
        }
    });

    TableViewerColumn tableViewerColumn3 = new TableViewerColumn(tableViewer, SWT.NONE);
    TableColumn tblclmnTest3 = tableViewerColumn3.getColumn();
    tblclmnTest3.setWidth(58);
    tblclmnTest3.setText("Test3");
    tableViewerColumn3.setLabelProvider(new ColumnLabelProvider()
    {
        @Override
        public String getText(Object element)
        {
            return super.getText(((String[])element)[2]);
        }
    });

    return container;
}

我所做的一切都类似于教程,但问题是:没有调用getText()方法。我通过将System.out.prinln插入到它们中找到了答案。结果看上去不像人们认为的那样:

我犯了什么错?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-15 08:16:59

在设置表列之前调用tableViewer.setInput --必须在定义所有列之后执行setInput

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23672145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档