在我的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();
现在,当我单击按钮更改标签文本时,您可以看到标签没有显示整个文本(参见图片) .
1 回答
设置标签文本后添加此行: