在 codenameone 中居中标签的标准方法是什么?

What is the standard way to center labels in codenameone?

我有一些类似的代码,因此我希望每个文本行都居中(而不是左对齐)。 (我昨天刚刚下载了 codenameone 和 intellij 的最新升级,并开始玩 codenameone)。我很久以前就想去,结果分心了。

    super("MyApp", BoxLayout.y());

    add(new Label("Welcome to the world"));
    add(new Label("of"));
    add(new Label("Games"));

这是代号one模拟器的图片...

我试着将第一个标签调整到这个

    Label label1 = new Label("Welcome to the world");
    label1.setTextPosition(Component.CENTER);
    add(label1);

但这会引发异常“文本位置无法设置为 4”。在执行 addComponent(BorderLayout.CENTER, new Label("Welcome")) 之后,我尝试了一个带有 BorderLayout 的 Container,但最终还是左对齐。

有什么办法解决这个问题使其居中吗?

编辑:我发现了一个已弃用的 label.setAlignment 方法。这将对齐方式固定为居中。这可能是最新版本中的错误吗?

谢谢, 院长

通过设计器、CSS 或 Style 对象将样式对齐 属性 到 LEFTRIGHTCENTER 之一.

setTextPosition 仅对图标有效。所以如果你想要左边的文字和右边的图标你可以将它设置为 RIGHT 甚至 BOTTOM 将它放在图标下面。

有一个重要警告。对齐仅在您放置的框中有效,因此仅当组件本身足够大时才适用。

另一种对齐任何内容的常见模式是使用流式布局,例如:Container centered = FlowLayout.encloseCenter(myCmp);