获取Draw2d标签图的大小

时间:2011-12-01 09:28:50

标签: java eclipse draw2d

如果我有一个私有Label = new Label("");的课程,我会写一些方法:

private void setText(String text)
{
    this.label.setText(text);
    System.out.println("label size = " + this.label.getSize(0,0));
}

它将始终打印“label size = Dimension(0,0)”。为什么是这样?如何在设置文本后获取标签占用的大小?我还尝试了here中建议的其他解决方案(here和方法getTextBounds())但我又分别获得了Dimension(0,0)或NullPointerException。

你有什么建议吗? thanx:)

1 个答案:

答案 0 :(得分:1)

this.label.getPreferredSize()正是您正在寻找的。它返回标签想要占用的空间。 但此时标签还不知道使用什么字体,因此NullPointerException。一旦你的数字树被设置,例如因为FigureCanvas字体的内容应该可用。或者,您可以在调用getPreferredSize()之前明确设置字体。

要在标签周围添加圆角矩形,就像您在评论中所要求的那样,您可以执行以下操作:

RoundedRectangle rr = new RoundedRectangle();
rr.setBorder(new MarginBorder(4));
rr.setLayoutManager(new StackLayout());
rr.add(new Label("label text"));