即使已填充数组,Java Textfield也不会出现(LibGDX)

时间:2019-06-01 20:45:29

标签: java arrays user-interface libgdx textfield

Tl; dr:,即使我用值填充数组,我的文本字段中也没有显示字符串“ 0”。

我有一组标签名称:

private String[] label_names2 = new String[] { "Name", "Motto", "Primary Color", "Secondary Color", "Image", "0",
        "0", "0", "0", "0", "Name", "Broom", "Sex", "Seeker", "Keeper", "Chaser1", "Chaser2", "Chaser3", "Beater1",
        "Beater2" };

由于我使用libGDX,所以我使用表

table_fans = new Table(game.getSkin());

声明了一个TextField数组:

array_textfields = new Array<TextField>();

并在其中添加了我标签的前10个项目:

for (int i = 0; i < 10; i++) { 
    array_textfields.add(createTextField(label_names2[i])); 
    if (i >= 5) {
        array_textfields.get(i).setTextFieldListener(new TextField.TextFieldListener() {

            @Override
            public void keyTyped(TextField textField, char c) {
                try {
                    Integer.parseInt(textField.getText());
                } catch (Exception e) {
                    textField.setText(Integer.toString(0));
                }
            }
        });
    }
}

我继续添加标签和文本字段:

table_fans.add(array_labels.get(1)).growX().row(); // Adds the text "Fan" to the Team Configuration

for (int i = 5; i < 9; i = i + 2) {
    table_fans.add(array_labels.get(i + 3)).fillX(); // Goblins, Trolls
    table_fans.add(array_textfields.get(i)).left().pad(15);
    table_fans.add(array_labels.get(i + 4)).fillX(); // Elves, Nifflers
    table_fans.add(array_textfields.get(i + 1)).left().pad(15).row();
}

table_fans.add(array_labels.get(12).fillX()); // Adds the label "Wombats"
table_fans.add(array_textfields.get(9)).left().pad(15); // This doesn't work properly

问题是上面编写的最后一行代码。特别是.get(9)。标签名称数组的第九项为“ 0”。但是,它没有显示。 (请参见屏幕截图1)。取而代之的是,它出现在Seeker旁边的“文本字段”中(并将它们移位1)。如果我使用.get(8),它将从“ Nifflers”中获取带有“ 0”的文本字段。 (请参见屏幕截图2)

我不知道如何解决此问题,因为我似乎在i < 10的for循环中正确添加了标签。 System.out.println(array_textfields.get(9))只是给了我TextField,断点也是。

Screenshot 1 Screenshot 2

0 个答案:

没有答案