LibGDX 按钮组的滚动面板

LibGDX Scroll Pane of buttonGroup

我正在尝试创建自己的瓦片地图创建器,因此我需要一些面板供用户在纹理之间进行选择。我想在我的相机视图中创建滚动窗格。它移动完美,一切都与字符串列表一起工作,但如果我想将字符串更改为 buttonGroup,它只显示在我的滚动窗格 "com.badlogic.gdx.scenes.scene2d.ui.ButtonGroup@5dcff25d" 中,仅显示一行。这是我的代码:

private void initPanel(){
    skin=new Skin(Gdx.files.internal("uiskin.json"));

    background = new Group();
    background.setBounds(0, CAM_HEIGHT-PANEL_SIZE, PANEL_SIZE, PANEL_SIZE);

    stage=new Stage(new ScreenViewport());
    list=new List<ButtonGroup>(skin);

    buttons=new TextButton[TEXTURE_NUMBER];
    buttons[0]=new TextButton("Delete",skin);
    buttons[1]=new TextButton("Red",skin);
    buttons[2]=new TextButton("Blue",skin);
    buttons[3]=new TextButton("Green",skin);

    buttonGroup=new ButtonGroup<TextButton>(buttons);
    buttonGroup.setMaxCheckCount(1);
    buttonGroup.setMinCheckCount(0);
    list.setItems(buttonGroup);

    scrollPane=new ScrollPane(list);
    scrollPane.setBounds(0, 0, PANEL_SIZE, PANEL_SIZE);
    scrollPane.setPosition(0,CAM_HEIGHT-PANEL_SIZE);
    scrollPane.setTransform(true);

    stage.addActor(background);
    stage.addActor(scrollPane);
    background.addActor(new Image(new Texture("textures/panel_background.png")));
    Gdx.input.setInputProcessor(stage);
}

每当您看到 com.badlogic.gdx.scenes.scene2d.ui.ButtonGroup@5dcff25dpackage.class@hexstring 之类的内容时,这意味着有人试图通过调用 Object#toString().

将对象转换为字符串

在这种情况下,罪魁祸首是 List class- 它旨在获取一堆对象并将它们显示为文本。 ButtonGroup 旨在逻辑关联按钮而不是将它们放置在屏幕上,因此您需要创建 ButtonGroup and a Table .将按钮添加到两者,然后将 table 放入 ScrollPane.

我假设您当然需要 ButtonGroup 功能来管理按钮。如果按钮彼此独立,则可以完全跳过 ButtonGroup,只需将按钮添加到 table.