Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java LIBGDX-表';s文本按钮未填充相应的行_Java_User Interface_Libgdx - Fatal编程技术网

Java LIBGDX-表';s文本按钮未填充相应的行

Java LIBGDX-表';s文本按钮未填充相应的行,java,user-interface,libgdx,Java,User Interface,Libgdx,我最近正在开发一款使用Scene2D的游戏,直到我遇到了这个问题,如图所示: 我可以单击按钮的范围超过了实际的TextButton区域 我已经阅读了GitHub页面中关于TableLayouts的文档,并阅读了关于Scene2D的不同文章,我尝试了摆弄不同的函数(例如padding、colSpan)来找到解决方案,但我似乎找不到解决方案 以下是负责设置和绘制表格的代码: table=newtable(); 表.setDebug(true); 表.添加(图形按钮).宽度(200f).高度(200

我最近正在开发一款使用Scene2D的游戏,直到我遇到了这个问题,如图所示:

我可以单击按钮的范围超过了实际的TextButton区域

我已经阅读了GitHub页面中关于TableLayouts的文档,并阅读了关于Scene2D的不同文章,我尝试了摆弄不同的函数(例如padding、colSpan)来找到解决方案,但我似乎找不到解决方案

以下是负责设置和绘制表格的代码:

table=newtable();
表.setDebug(true);
表.添加(图形按钮).宽度(200f).高度(200f);
table.row();
表.添加(音频按钮).宽度(200f).高度(200f);
table.row();
表.添加(返回标题按钮).宽度(200f).高度(200f);
table.setBounds(0,0,stage.getWidth(),stage.getHeight());
阶段。加法器(表);
下面是代码的其余部分(请注意,我还没有将文本放在按钮的中心位置,我只添加了填充值,而且-为了方便起见,我从Screen类中删除了空函数)

导入com.badlogic.gdx.Game;
导入com.badlogic.gdx.gdx;
导入com.badlogic.gdx.Screen;
导入com.badlogic.gdx.scenes.scene2d.InputEvent;
导入com.badlogic.gdx.scenes.scene2d.Stage;
导入com.badlogic.gdx.scenes.scene2d.ui.Table;
导入com.badlogic.gdx.scenes.scene2d.ui.TextButton;
导入com.badlogic.gdx.scenes.scene2d.ui.TextField;
导入com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
导入com.badlogic.gdx.utils.viewport.ScreenViewport;
导入com.thesameritan.game.GUI.UI;
公共类选项屏幕扩展屏幕属性实现屏幕{
私人舞台;
私人餐桌;
选项屏幕(最终游戏){
超级();
阶段=新阶段(新屏幕视口());
Gdx.input.setInputProcessor(阶段);
TextButton backToTitleButton=UI.createNewButton(“BACK”,buttonStyle,0.8f,25f,0.9f);//使用文本、样式、padbooth、padLeft和fontScale从另一个类创建按钮
TextButton graphicsButton=UI.createNewButton(“图形”,按钮样式,0.9f,20f,0.9f);
TextButton audioButton=UI.createNewButton(“音频”,按钮样式,0.9f,20f,0.9f);
backToTitleButton.addListener(新建ClickListener(){
@凌驾
已单击公共无效(InputEvent事件、浮点x、浮点y){
//分门别类
}
});
graphicsButton.addListener(新建ClickListener(){
@凌驾
已单击公共无效(InputEvent事件、浮点x、浮点y){
//图形学分支
}
});
audioButton.addListener(新建ClickListener(){
@凌驾
已单击公共无效(InputEvent事件、浮点x、浮点y){
//分支到选项
}
});
table=新表();
表.setDebug(true);
表.添加(图形按钮).宽度(200f).高度(200f);
table.row();
表.添加(音频按钮).宽度(200f).高度(200f);
table.row();
表.添加(返回标题按钮).宽度(200f).高度(200f);
table.setBounds(0,0,stage.getWidth(),stage.getHeight());
阶段。加法器(表);
}
@凌驾
公共无效渲染(浮动增量){
clearScreen();//来自ScreenProperties
stage.draw();
}
@凌驾
公共空间处置(){
DisposeObject();//来自ScreenProperties
stage.dispose();
}
}
我想要的是在不影响按钮大小的情况下最小化按钮之间的间隙-我再次尝试通过更改
.width()
.height()
值来减小交互区域的大小(如红线所示)


非常感谢你

这里有趣且缺失的部分是UI.createNewButton

您可以调试按钮本身,而不是将debug设置为外部表:
backToTitleButton.setDebug(true)
。您将看到单击边界没有超出按钮区域,但图形表示不正确。我怀疑你没有在矩形中使用Ninepatch