0

如果我有一个带有私有的类Label = new Label("");并且在某些方法中我写:

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

它总是会打印“标签大小 = Dimension(0,0)”。为什么是这样?设置文本后如何获取标签占用的大小?我还尝试了其他解决方案(此处和此处建议的方法 getTextBounds() ),但我要么再次获得 Dimension(0,0) 要么分别获得 NullPointerException。

你有什么建议吗?谢谢 :)

4

1 回答 1

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"));
于 2011-12-01T13:22:40.720 回答