使用TextFlow和FlowPage发布绘制对齐的文本

时间:2012-02-22 12:54:41

标签: java eclipse swt draw2d

我正在使用包含TextFlow对象的FlowPage对象绘制多行文本标签。我的标签类的代码是:

class TransitionLabel extends FlowPage {
    private TextFlow content;

    public TransitionLabel()
    {
        setForegroundColor(ColorConstants.white);
        setHorizontalAligment(PositionConstants.CENTER);
        content = new TextFlow();
        content.setOpaque(true);
        content.setText("");
        add(content);
    }

    public void setText(String content)
    {
        this.content.setText(content);
        revalidate();
        repaint();
    }

    public String getText()
    {
        return this.content.getText();
    }

}

当控件刷新(修改后)时,它会像messy label texts下面的屏幕截图中的SEND标签一样结束。

我做错了什么? thanx的帮助

PS 可以找到相同的屏幕截图here

PPS 我编辑了与问题无关的方法getPreferredSize

1 个答案:

答案 0 :(得分:0)

FlowPage不会自行调整大小。它只告诉布局管理器其父图 - 根据请求 - 它想要的大小。我没有使用什么布局管理器,但它可能不会调整您的标签大小。您可以尝试添加

setSize(getPreferredSize());
在重新验证之前,在setText(..)方法中