如果我有一个私有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:)答案 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"));