java - 表格不绘制以下行
问题描述
我试图用一个阶段绘制多个表,到目前为止它适用于不同行中的两个表,但是当我尝试添加第三个或第四个时它不起作用。我试图单独绘制表格,它们可以工作,但不能组合起来,这很有趣,因为它们适用于 2 个表格......
我尝试单独绘制表格,它们可以工作,但不能组合在一起。
public void setupScreen() {
TextureAtlas menuUi = assetManager.get(Assetdescriptor.backGround);
TextureRegion backGroundRegion = menuUi.findRegion(Regionnames.backGround);
Skin menuSkin = assetManager.get(Assetdescriptor.skinUI);
TextButton team1 = new TextButton("Team 1", menuSkin, "Team1");
TextButton team2 = new TextButton("Team 2", menuSkin, "Team1");
TextButton team3 = new TextButton("Team 3", menuSkin, "Team3");
TextButton team4 = new TextButton("Team 4", menuSkin, "Team4");
TextButton team5 = new TextButton("Team 5", menuSkin, "Team5");
TextButton player1 = new TextButton("Spieler 1", menuSkin);
player1.addListener(new ChangeListener() {
@Override
public void changed(ChangeEvent event, Actor actor) {
System.out.println("Clicked");
}
});
TextButton player2 = new TextButton("Spieler 2", menuSkin);
TextButton kiPanzer1 = new TextButton("Ki Panzer 1", menuSkin);
TextButton kiPanzer2 = new TextButton("Ki Panzer 2", menuSkin);
TextButton kiPanzer3 = new TextButton("Ki Panzer 3", menuSkin);
Table teamTable1 = new Table();
Table teamTable2 = new Table();
Table teamTable3 = new Table();
Table teamTable4 = new Table();
Table teamTable5 = new Table();
Table TeamOverview = new Table();
Table spieler1= new Table(); // Spieler 1
Table spieler2= new Table(); // Spieler 2
Table Ki3 = new Table(); // Ki Panzer
Table Ki4 = new Table(); // Ki Panzer
Table Ki5 = new Table(); // Ki panzer
spieler1.add(player1);
spieler2.add(player2);
Ki3.add(kiPanzer1);
Ki4.add(kiPanzer2);
Ki5.add(kiPanzer3);
TeamOverview.add(team1, team2, team3, team4, team5);
teamTable1.center();
teamTable1.add(spieler1,spieler2,Ki3,Ki4,Ki5);
teamTable2.center();
teamTable2.add(spieler1,spieler2,Ki3,Ki4,Ki5);
teamTable3.center();
teamTable3.add(spieler1,spieler2,Ki3,Ki4,Ki5);
teamTable4.center();
teamTable4.add(spieler1,spieler2,Ki3,Ki4,Ki5);
Table table = new Table();
table.add(TeamOverview);
table.add(teamTable1).row();
-- -These are the tables which dont work---
table.add(teamTable2).row();
table.add(teamTable3).row();
table.add(teamTable4).row();
-----------------------------------
table.setFillParent(true);
table.setBackground(new TextureRegionDrawable(backGroundRegion));
table.pack();
stage.addActor(table);
}
没有错误消息,但绘图没有变化预期结果是 6 行但只有 2 行。
解决方案
据我所知,您不允许重复使用相同的对象(spieler1、spieler2、Ki3、Ki4、Ki5)。每次将它们添加到不同的表时创建唯一的实例。
检查 com.badlogic.gdx.scenes.scene2d.Group#addActor (其中 Table 扩展自)
public void addActor (Actor actor) {
if (actor.parent != null) {
if (actor.parent == this) return;
actor.parent.removeActor(actor, false);
}
children.add(actor);
actor.setParent(this);
actor.setStage(getStage());
childrenChanged();
}
一个演员只能有一个父母,前一个被删除。你的表可能仍然有你想要的所有行,它们只是空的。您可以使用 setDebug(true) 查看绘图“线条”。
编辑
无论如何,这个问题似乎是重复的。请参阅
如何在一个舞台上不同位置绘制同一个演员的多个副本?
推荐阅读
- python-3.x - 我想在我的 tkinter 窗口中嵌入 python 控制台。我该怎么做?
- docker - 如何将 Kubernetes 仪表板配置为通过 Gmail 帐户等 SSO 访问
- python - 无法将变量传递给python中的bash命令
- c# - 反序列化 xml 时在嵌套元素中获取 null
- c# - C# Dapper QueryFirstOrDefault 方法与“方法或操作未实现”异常
- google-forms - Google 表单:我可以添加将在新标签页上打开的超链接吗?
- python - 如何从 txt 文件中提取特定值并将其全部转换为 df
- ios - 如何使用 Alamofire 创建 JSON 并将其发送到服务器?
- django - Apache 不在 443 (aws) 上为 Django 提供服务
- android - 如何在 Android 上使用 IAM 或 Cognito Pool 作为身份验证方法而不是 API 密钥