2016-12-30 95 views
0

我想创建我自己的瓷砖地图创建者,所以我需要一些面板,用户可以在纹理之间进行选择。我想在我的相机视图内创建滚动窗格。它完美地移动,一切都与字符串列表一起工作,但如果我想将字符串更改为buttonGroup,它只会显示在我的滚动窗格“[email protected]”中,没有其他的只有一行。这里是我的代码:buttonGroup的LibGDX滚动窗格

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); 
} 

回答

0

每当你看到这样[email protected][email protected],就意味着有人试图通过调用Object#toString()对象转换为字符串。

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

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

+0

ScrollPane构造函数不想获得buttonGroup:/但我需要按钮组,因为checkCount:/你有任何想法如何在ScrollPane中存储buttonGroup? – user3396072

+0

对不起,我没有仔细查看ButtonGroup。它不扩展Actor,所以你不能把它放到ScrollPane中。看到我更新的答案。 – John