【问题标题】:How to dynamically add new Labels below eachother in Javafx如何在 Javafx 中动态地在彼此下方添加新标签
【发布时间】:2018-01-04 17:23:48
【问题描述】:

我正在尝试在我的 Javafx 应用程序中制作排行榜。为了实现这一点,我想动态添加包含彼此下方播放器名称的标签。我第一次使用这样的网格窗格:

Gridpane pane
for(int i = 0; i < users.size(); i++)
{
     Label l = new Label();
     l.setText(users.get(i).getName());
     pane.add(l, 2, 1);
}

(我不能展示整个代码,因为这是一个学校项目,我不被允许)。

但是,当我这样做时,所有的名字都会出现在完全相同的位置。然后,我尝试手动更改他们的 y 位置,但显然,这并没有改变。

那么,另一种动态地将元素放在彼此下方的好方法是什么?

【问题讨论】:

  • 你试过用VBox吗
  • 更改rowIndex:pane.add(l, 2, 1+i);???
  • @fabian 是对的,这将解决您的问题。不过,您可能想考虑使用其他东西,例如 ListView 或 VBox,就像 Austin 建议的那样。

标签: java javafx


【解决方案1】:

来自 GridPane 的 API 文档...

应用程序还可以使用结合设置约束和添加子级步骤的便捷方法:

 GridPane gridpane = new GridPane();
 gridpane.add(new Button(), 1, 0); // column=1 row=0
 gridpane.add(new Label(), 2, 0);  // column=2 row=0

尝试了解您的示例的参数...(提示 - 如果您将所有标签添加到第 2 列第 1 行会发生什么?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-22
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 2016-08-02
    • 1970-01-01
    相关资源
    最近更新 更多