【问题标题】:Eclipse RCP - automatically shrink text in a TableViwer cellEclipse RCP - 自动缩小 TableView 单元格中的文本
【发布时间】:2011-08-18 15:53:20
【问题描述】:

我正在开发我的第一个 Eclipse RCP 应用程序,我想知道如何强制 JFace TableViewer 组件自动缩小表格单元格中的文本。现在,如果我通过模型传递一个包含多行文本的属性,文本将按原样显示,这会导致表格中的每一行具有不同的高度:

我想要的只是一条线,如果该线(如果它太长而无法容纳单元格)将被转换为类似“我是一条非常长的线......”并且如果窗口的大小将线路更改为“我住在...的一条非常长的线路”,其中完整的财产是例如。 '我是一个非常长的行,位于表格单元格\r\n 和一些其他文本中'。

【问题讨论】:

    标签: swt eclipse-rcp jface


    【解决方案1】:

    我不能 100% 确定我完全理解你想要什么。

    如果您希望从表格单元格文本中删除换行符,您应该在设置单元格文本之前使用标准方法 (String.replace()) 执行此操作。

    如果您希望调整列宽以适合所有文本,请查看TableColumn.pack()

    【讨论】:

    • 是的,我说的是第一个选项,我只是认为我可以在 tableviewer / tableviewer 列上设置一些自动执行此操作的标志。
    • 该单元格将显示内容提供者提供的任何文本......因此,如果您想要重新格式化文本,您必须自己处理重新格式化。
    【解决方案2】:

    最后我按照大卫的建议去做了:

    col.setLabelProvider(new ColumnLabelProvider() {
            @Override
            public void update(ViewerCell cell) {
                String desc = ((Product) cell.getElement()).getDescription();
                desc = desc.replaceAll("\\r\\n|\\r|\\n", " ");
                cell.setText(desc);
            }
        });
    

    【讨论】:

      猜你喜欢
      • 2017-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-15
      • 2017-02-28
      • 2013-06-11
      • 1970-01-01
      相关资源
      最近更新 更多