【发布时间】:2016-10-26 01:19:20
【问题描述】:
在我的 Codename One 应用程序中,当应用程序发送查询时,我想在中心显示一个 InfiniteProgress,并在其下方显示一个居中的标签,告诉用户发生了什么。所以我创建了一个带有BorderLayout 的容器,并添加了带有约束BorderLayout.CENTER 的无限进度和一个带有BorderLayout.SOUTH 约束的容器,其中包含标签。内部容器布局为BorderLayout 和BorderLayout.CENTER_BEHAVIOR_CENTER_ABSOLUTE。然后我只添加带有约束BorderLayout.CENTER 的标签,这确实使标签居中。但是,当我尝试将标签的文本更改为更长的内容时,它会被剪切。可以使用以下简单示例来演示该问题:
Form hi = new Form("Welcome", new BorderLayout(BorderLayout.CENTER_BEHAVIOR_CENTER_ABSOLUTE));
Button button = new Button("Change text");
Label label = new Label("South");
button.addActionListener(event -> {
label.setText("A lot longer text");
});
hi.add(BorderLayout.CENTER, button);
Container container = new Container();
container.setLayout(new BorderLayout(BorderLayout.CENTER_BEHAVIOR_CENTER_ABSOLUTE));
container.add(BorderLayout.CENTER, label);
hi.add(BorderLayout.SOUTH, container);
hi.show();
现在,当我点击按钮更改标签的文本时,您可以看到标签并没有显示整个文本(见图)。
【问题讨论】:
标签: codenameone