Libgdx 之CheckBox ScrollPane

CheckBox 复选框

CheckBox extends TextButton,其实CheckBox就是继承自TextButton,然后里面添加了 Image 控件,可以知道CheckBox的状态是否被选中, checkBox.isChecked()

ScrollPane 滑动列表

ScrollPane extends WidgetGroup, 默认大小是(150, 150),大小也是由preferred size来决定的。
其实这2个控件很简单,通过源码很容易理解怎样使用

public class CheckTest extends ApplicationAdapter {

    CheckBox checkBox;
    ScrollPane scrollPane;

    Stage stage;
    Skin skin;

    @Override
    public void create() {
        stage = new Stage();
        Gdx.input.setInputProcessor(stage);

        skin = new Skin(Gdx.files.internal("uiskin.json"));

        checkBox = new CheckBox("CheckBox", skin);
        checkBox.addListener(new ChangeListener() {

            @Override
            public void changed(ChangeEvent event, Actor actor) {
                if (checkBox.isChecked()) {
                    Gdx.app.log("TAG", "box is checked");
                } else {
                    Gdx.app.log("TAG", "box is unchecked");
                }
            }
        });

        final List<String> list2 = new List<String>(skin);
        String[] items = {"item5", "item6", "item7", "item8"};
        list2.setItems(items);
        list2.pack();
        scrollPane = new ScrollPane(list2, skin);
        scrollPane.setHeight(scrollPane.getHeight()*0.4f);
        scrollPane.setPosition(0, 40 + checkBox.getHeight());
        scrollPane.addListener(new ChangeListener() {

            @Override
            public void changed(ChangeEvent event, Actor actor) {
                // 其实是内部的Actor来处理的响应函数
                System.out.println(""+list2.getSelected());
            }

        });

        stage.addActor(checkBox);
        stage.addActor(scrollPane);
    }

    @Override
    public void render() {
        Gdx.gl.glClearColor(0.39f, 0.58f, 0.92f, 1.0f);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

        stage.act();
        stage.draw();
    }

    @Override
    public void dispose() {
        stage.dispose();
        skin.dispose();
    }

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值