我一直在尝试找出一种将按钮上的文本居中的方法,但是找不到一种简单的,多用途的方法。我可以做到,但它仅适用于某个字符串,不适用于任何字符串。我想知道是否有一种方法可以将任何字符串居中放置在按钮上。在这种情况下,我的按钮是185x50。
我已经能够在屏幕上居中放置此按钮,如下所示:
buttonX = WIDTH / 2 - (screen.getRegionWidth() / 2);
buttonY = HEIGHT / 2 - (screen.getRegionHeight() / 2);
任何帮助将非常感激。:)
更新了对libgdx版本1.7.1-SNAPSHOT的答案:
最简单的方法是使用libgdx中的TextButton类。默认情况下,来自TextButton的文本居中。这仍然有效!
更新的示例:
final BitmapFont font = new BitmapFont();
final String text = "Test";
final GlyphLayout layout = new GlyphLayout(font, text);
// or for non final texts: layout.setText(font, text);
final float fontX = objectX + (objectWidth - layout.width) / 2;
final float fontY = objectY + (objectHeight + layout.height) / 2;
font.draw(batch, layout, fontX, fontY);
过时的示例:
这不再有效!
如果您不想使用它,则可以通过以下方式获取字体的宽度和高度:
font.getBounds("Test text");
因此,您可以执行以下操作:
String fontText = "";
fontX = buttonX + buttonWidth/2 - font.getBounds(fontText).width/2;
fontY = buttonY + buttonHeight/2 + font.getBounds(fontText).height/2;
问题内容: 我正在尝试创建使用此lambda函数单击的按钮的列表: 似乎有点工作,但它会立即打印按钮文本,即它不等待用户单击按钮。 关于如何使其对按钮单击做出响应的任何想法? 问题答案: 试图在lambda中完成所有这些操作是错误的方法。简直太令人困惑了,即使不是不可能做您想做的事情。而是创建一个可以完成工作的方法,并仅将lambda用作调用该函数的一种方式:
我一直在尝试制作这样的GUI: 然而,我遇到的困难是,我需要使按钮的文本可变-每个按钮应该提供不同的选项,可以在文本长度上有所不同。虽然这本身并不困难,但我尝试了无数不同的方法,但我无法让按钮居中,尽管它们的文本长度。无论我尝试什么,我总是有以下问题之一: 按钮不居中(左边有空间,但它们超过了右边的窗口) 由于某种原因,问题和Goodratio根据按钮大小更改位置 我不知道该怎么做。有没有人对做这
在Borland VCL库中,几乎所有控件都有提示属性。在运行时,当您将鼠标放在相应的控件上时,当您移动鼠标时,一个带有提示文本的小框会弹出并再次消失,例如Windows资源管理器和其他程序中的帮助消息,当鼠标光标放在按钮上时。 JavaFX中是否有类似的概念(实际上,我使用的是ScalaFX)? 当然,我可以创建一个没有装饰的新舞台,添加一些鼠标监听器等,但是它不是已经在某个地方可用了吗?
问题内容: 我不在乎有什么区别。我只想知道内容是否不同。 问题答案: 低级方式: 高级方式:
null 在读取数据时,我希望1个用户的所有数据都落入同一个spark分区。单个spark分区可以有1个以上的用户,但它应该有所有这些用户的所有行。 目前,我使用的是:sparksession.read.parquet(“../userdata”).repartition(200,col(“userid”)) (还尝试了使用自定义分区器的partitionBy;操作顺序:DataFrame->RD
问题内容: 我正在尝试将长度不定的多个数据列表输出到CSV文件。每个列表应该是输出CSV文件中的一列。有直接的做事方法吗?如果我将每个列表输出为一行,那么我将遍历每个列表并在结束时输出返回值,但是这种方法在按列工作时不起作用。 我曾想过一次逐项检查所有列表并增加一个计数器,但这也会失败,因为有些列表比另一些更长。为了解决这个问题,我将不得不在每次迭代时检查计数器是否在每个列表的末尾,这在计算方